来自: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

【转】android之在activity中控制另一个activity的UI更新_如何在activity之间传递handler的更多相关文章

  1. android开发之在activity中控制另一个activity的UI更新

    转自:http://blog.csdn.net/jason0539/article/details/18075293 第一种方法: 遇到一个问题,需要在一个activity中控制另一个acitivit ...

  2. 【Android】12.3 在当前Activity中获取另一个Activity的返回值

    分类:C#.Android.VS2015: 创建日期:2016-02-23 一.简介 在上一节的示例中,通过StartActivity(Intent)方法启动另一个Activity后,这两个Activ ...

  3. 【Android开发-8】生命周期,Activity中打开另外一个Activity

    前言:生命中有很多人陪伴自己走过一生中的某段旅程,仅仅是有些人仅仅是某阶段出现,有些人却陪伴自己非常久.就像小学.中学.高中.大学,那些以前以为会长久拥有的,当经历过天涯各地地忙碌于生活,或如意.或失 ...

  4. Android开发中在一个Activity中关闭另一个Activity

    比如有ActivityA, ActivityB,在ActivityB中关闭ActivityA 解决方案: 1. 在 ActivityA 里面设置一个静态的变量instance,初始化为this在 Ac ...

  5. Android在一个Activity中关闭另一个Activity

    比如有ActivityA, ActivityB,在ActivityB中关闭ActivityA. 解决方案: 1.在 ActivityA 里面设置一个静态的变量instance,初始化为this,在 A ...

  6. 在一个Activity中启动另一个Activity

    一.新建一个空的工程 二.添加一个Activity并命名为BAty 三.在activity_main.xml中添加一个按钮,设置id号为btnStartB <Button android:lay ...

  7. git中如何查看一个文件的修改(更新)历史

    有些时候有些文件或文件夹被移除了, 或者更换了路径或被改名了, 想跟踪一下这个文件被修改(更新)的历史, 可以用如下命令: git log -p matser -- filename 格式是: git ...

  8. Android开发常见的Activity中内存泄漏及解决办法

    上一篇文章楼主提到由Context引发的内存泄漏,在这一篇文章里,我们来谈谈Android开发中常见的Activity内存泄漏及解决办法.本文将会以“为什么”“怎么解决”的方式来介绍这几种内存泄漏. ...

  9. android开发中一个activity如何调用另一个xml中的控件

    有时候,我们需要在一个activity中使用另一个activity中的控件,这时候就不能直接findViewById,不然会报错指向空对象,这时就需要像下面这样做. LayoutInflater fa ...

随机推荐

  1. Dubbo监控中心搭建-dubbo-monitor-simple的使用

    场景 Dubbo环境搭建-管理控制台dubbo-admin实现服务监控: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10362 ...

  2. 城市间紧急救援 Dijkstra

    作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上.当其他城市有紧急求 ...

  3. SpringBoot-自动装载

    1,SpringBoot里面有内置的tomcat容器. 2,SpringBoot是基于已有的东西创建的新的东西.核心:(AutoConfiguration)自动装载,Starter,Actuator, ...

  4. JupyterLab远程访问配置方法(CentOS7)

    下载 Anaconda3安装包,并执行安装命令: bash Anaconda3-2019.07-Linux-x86_64.sh 确定安装并初始化: Do you wish the installer ...

  5. mac机器smb映射

    1  finder中打开前往 2  输入:smb://10.216.90.*  链接 3  输入 账户和密码(名称和密码是你机器的smb密码:比如123***)

  6. Kosaraju's algorithm

    推荐到我的这篇博客中看完整版的. 该算法用于求解有向图的强连通分量,也就是强连通子图的个数. 算法实现摘自Kosaraju's algorithm - 百度百科: #include <iostr ...

  7. 跨域-JSONP

    jsonp跨域 - 前端适配,后台配合 说明:前后台同时改造 cnpm i jsonp --save-dev 在App.vue里 import jsonp from 'jsonp' let url = ...

  8. DVWA实验之Brute Force(暴力破解)- Medium

    DVWA实验之Brute Force(暴力破解)- Medium   有关DVWA环境搭建的教程请参考: https://www.cnblogs.com/0yst3r-2046/p/10928380. ...

  9. hbase(待完善)

    1. 应用 <1>  hbase解决海量图片存储 <2>

  10. 阅读build to win的个人感想

    一个程序员要向各个方面学习,向市场.向用户学习等,不能局限于一方面.除此以外还要有自己的想法,要懂得创新,也需要在各个方面都有所突破,有所超越,实力才是取得胜利的根关键.