来自: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. Python 高级特性介绍 - 迭代的99种姿势 与协程

    Python 高级特性介绍 - 迭代的99种姿势 与协程 引言 写这个笔记记录一下一点点收获 测试环境版本: Python 3.7.4 (default, Sep 28 2019, 16:39:19) ...

  2. DIV 设置垂直居中

    要说面试官经常问的问题中“如何将一个块元素水平垂直居中”就算一个. 之前的面试中也有中招,现在总结一下. 1.CSS垂直水平居中 要让DIV水平和垂直居中,必需知道该DIV得宽度和高度,然后设置位置为 ...

  3. Shiro&Jwt验证

    此篇基于 SpringBoot 整合 Shiro & Jwt 进行鉴权 相关代码编写与解析 首先我们创建 JwtFilter 类 继承自 BasicHttpAuthenticationFilt ...

  4. 迅速看一下jdk8

    一直在看java并发的感觉说的有点多,就看点简单的放松一下吧!这次来简单说一下jdk8,很久没用,都陌生了,仔细看看还挺有意思的,让我们大脑转化一个角度来写代码:因为我们现在平常大部分用jdk7写代码 ...

  5. springboot集成实现秒杀

    springboot集成开发实现商场秒杀 加入主要依赖 <dependency> <groupId>org.springframework.boot</groupId&g ...

  6. java 倒入一篇文章,显示每个字母的出现概率,从大到小排序

    package com_1; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; ...

  7. hackinglab-脚本关1——key又又找不到了

    首先打开链接然后会发现是 然后用bp进行抓包然后会发现 然后点一下网页中的链接然后会发现 会发现抓包抓到一个地址 然后提示改一下网页的后缀地址  然后就得到了 key

  8. redis 字符串操作

    redis 字符串创建SET操作 127.0.0.1:6379> set number "10086" OK 127.0.0.1:6379> set book &quo ...

  9. 关于emoji表情,支持在app端发送web端显示,web端发送给app端显示,web与wap端互相显示。

    要用到emoji.js和emoji.jquery.js两个插件配合实现三端互通. 1.app端发送的emoji表情----到服务器---服务器存储的是‘问号’,无法显示如图所示: 后台的同学也试验了网 ...

  10. python中,字符串前的u,b,r字符的含义

    1.字符串前加 u 例:u"我是含有中文字符组成的字符串." 作用: 后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时 ...