来自:http://blog.csdn.net/jason0539/article/details/18055259

遇到一个问题,需要在一个activity中控制另一个acitivity做一些更新,没想到传递handler的方法,通过以下方式解决。

1.在MyAPP中定义属性handler

1.在MyAPP中定义属性handler

  1. package jason.com;
  2. import jason.com.MasterActivity.MyHandler;
  3. import android.app.Application;
  4. /**
  5. * 自己实现Application,实现数据共享
  6. * @author jason
  7. */
  8. public class MyAPP extends Application {
  9. // 共享变量
  10. private MyHandler handler = null;
  11. // set方法
  12. public void setHandler(MyHandler handler) {
  13. this.handler = handler;
  14. }
  15. // get方法
  16. public MyHandler getHandler() {
  17. return handler;
  18. }
  19. }

2、在主activity 中给MyAPP的属性handler赋值

  1. @Override
  2. public void onCreate(Bundle savedInstanceState) {
  3. super.onCreate(savedInstanceState);
  4. setContentView(R.layout.main);
  5. mAPP = (MyAPP) getApplication();
  6. handler = new MyHandler();
  7. tv = (TextView) findViewById(R.id.tv);
  8. btn_to = (Button) findViewById(R.id.btn_to);
  9. // 设置监听器
  10. btn_to.setOnClickListener(new OnClickListener() {
  11. @Override
  12. public void onClick(View v) {
  13. // 设置共享变量
  14. mAPP.setHandler(handler);
  15. // 启动另一个Activity
  16. Intent intent = new Intent(MasterActivity.this,
  17. ToChangeViewActivity.class);
  18. startActivity(intent);
  19. }
  20. });
  21. }

3、在另一个activity中获取MyAPP中handler进行传值

  1. protected void onCreate(Bundle savedInstanceState) {
  2. super.onCreate(savedInstanceState);
  3. setContentView(R.layout.show);
  4. mAPP = (MyAPP) getApplication();
  5. // 获得该共享变量实例
  6. mHandler = mAPP.getHandler();
  7. findViewById(R.id.btn_chang).setOnClickListener(new OnClickListener() {
  8. @Override
  9. public void onClick(View v) {
  10. // 发送消息
  11. mHandler.sendEmptyMessage(CHANGED);
  12. ToChangeViewActivity.this.finish();
  13. }
  14. });
  15. }

除了这个方案,又想到了另外一个比较变通的方案,利用Broadcast机制来实现,见地址:http://blog.csdn.net/jason0539/article/details/18075293

最新文章

  1. codevs1409 拦截导弹2
  2. Oracle数据库,非空约束、主键约束、外键约束、唯一约束
  3. spring security防御会话伪造session攻击
  4. PostMessager来对子父窗体进行跨域
  5. spring 启动流程
  6. redhat enterprixe 5.0 web 服务配置与管理
  7. Decorator模式
  8. 高性能javascript及页面注意事项
  9. 重装mysql步骤
  10. OpenSSH远程拒绝服务漏洞
  11. [LeetCode] 033. Search in Rotated Sorted Array (Hard) (C++)
  12. HTML1高级
  13. golang 标准库间依赖的可视化展示
  14. @property的参数
  15. 不要使用jQuery触发原生事件
  16. Java weak reference
  17. 2017-11-03 Fr OCT 球体积的导数为球表面积
  18. Kubernetes 安装
  19. Redis深入之对象
  20. 解决IE下select option不支持display none样式

热门文章

  1. XFire客户端调用CXF服务端(四)
  2. C语言中调用运行python程序
  3. Centos610-FastDFS系列篇
  4. ora 01704 字符串文字太长
  5. linux下windows访问samba服务器
  6. denied: requested access to the resource is denied 解决办法
  7. js的split() 方法和join()方法
  8. DataGrid DataGridTextColumn 樣式
  9. 线段树——I hate it
  10. Plastic Sprayers Manufacturer - Ingenious Design Of Spray Plastic Bottle