activity-使用 Handler 更新 UI

问题描述

使用 Handler 更新 UI

我实现了一个Android应用程序,,包含四个activity(A,B,C,D)
A 调用 B; B调用 C,并且 C调用 D。

Activity A 实现了一个Handler

Handler handler=new Handler(){
        public void handleMessage(Message msg){

            Bundle bundle = new Bundle();
            bundle = msg.getData();
            String key = bundle.getString("Changed");

            if(key.compareTo("NotificationType") == 0){
                String completeStr = bundle.getString(key);

                if(completeStr.compareTo("Message") == 0)
                {
                             // update UI of Activity A
                        }
                 }
         }
   };

Activity D 可以使用handler发送一个信息。
现在的问题是:
当从activity D中发送信息时,如果 Activity A在后台,会发生什么?
通过handler接收信息之前,如果activity A 被毁坏了,会发什么?

解决方案

哥们,你解决了吗?我也遇到了相同问题

时间: 2024-10-02 18:22:22

activity-使用 Handler 更新 UI的相关文章

更新ui-求指点,Handler更新UI线程问题

问题描述 求指点,Handler更新UI线程问题 public Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub super.handleMessage(msg); switch (msg.what) { case 0x123: one.setImageResource(imageIds[currentIm

Handler更新UI的几种方法

handler使用Message 1.定义一个Handler 2.重写消息处理函数 3.发送消息 //创建简单的View import android.content.Context;  import android.graphics.Canvas;  import android.graphics.Color;  import android.graphics.Paint;  import android.graphics.Point;  import android.graphics.dra

Android热身:通过网络获取资源并更新UI组件

Android热身:通过网络获取资源并更新UI组件 目标 点击"发送请求"按钮,下载某网页的html源码,并显示在TextView控件上:点击"清空",清除TextView控件上的内容 效果图: 要点 开启网络权限 网络请求独立为一个模块 按钮点击事件的监听器 新开线程进行网络请求调用 用handler更新UI组件 源码 //MainActivity.java 主程序 package com.example.chris.handlerdemo; import and

如何利用Handler更新android的UI

  提出问题 新手刚开始接触Android线程编程的时候,会想到如下使用如下代码: 复制到剪贴板  Java代码 new Thread( new Runnable() {         public void run() {              myView.invalidate();         }            }).start();     但是:该实现方法是不可行的. 分析问题: 因为:Android UI操作并不是线程安全的,这些操作必须在UI线程中执行. 1.my

学习通过Thread+Handler实现非UI线程更新UI组件(转)

  [Android线程机制]    出于性能考虑,Android的UI操作并不是线程安全的,这就意味着如果有多个线程并发操作UI组件,可能导致线程安全问题.为了解决这个问题,Android制定了一条简单的规则:只允许UI线程修改Activity里的UI组件    当一个程序第一次启动时,Android会同时启动一条主线程(Main Thread),主线程主要负责处理与UI相关的事件,如用户的按键事件,用户接触屏幕的事件及屏幕绘图事件,并把相关的事件分发到对应的组件进行处理.所以主线程通常又被叫

在Android中实现Service动态更新UI界面(Service与主程序Activity之间的数据交互或控制)

案例:通过service向远程服务器发送请求,根据服务器返回的结果动态更新主程序UI界面,主程序可实时关闭或重启服务. 方案一:使用广播+Service 注册BroadcastReceiver 1.在主程序activity中注册一个BroadcastReceiver,用于接收Service发布的广播. @Override protected void onStart() {//重写onStart方法 dataReceiver = new DataReceiver(); IntentFilter

android开发教程之handler异步更新ui

其实文字游戏程序很简单,就是一个view和一个Activity,在利用下handier和postInvalidate()更新UI 调用Handler.post(Runnable r)方法,Runnable运行在UI所在线程,所以可以直接调用View.invalidate() 复制代码 代码如下:packagecom.Test.androidtest; importandroid.app.Activity;importandroid.content.Context;importandroid.gr

Android使用Handler和Message更新UI

在Android中,在非主线程中更新UI控件是不安全的,app在运行时会直接Crash,所以当我们需要在非主线程中更新UI控件,那么就需要用到Handler和Message来实现 Demo中,使用到一个按钮和一个TextView,点击按钮之后改变TextView的内容,按钮点击时候新建一个进程,在进程中对UI控件进行修改. public class MainActivity extends Activity implements OnClickListener { private static

android中子线程更新UI的方式

一.为何写作此文 你是不是经常看到很多书籍中说:不能在子线程中操作ui,不然会报错.你是不是也遇到了如下的疑惑(见下面的代码): (Bundle savedInstanceState) { .onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv = (TextView) findViewById(R.id.tv); Thread.currentThread().setName(); LooperThrea