Sub Thread to update main Thread (UI)

Sub Thread to update main Thread (UI)

main Thread :   A  has Hander.HandleMessage() to process the "Msg" from subthread B;

Sub Thread :    B  use  Hander.sendMessage(Msg)  to main Thread A;

 1 import java.util.Timer;
 2 import java.util.TimerTask;
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.os.Handler;
 6 import android.os.Message;
 7 public class HandlerDemo extends Activity {
 8
 9     //title为setTitle方法提供变量,这里为了方便我设置成了int型
10     private int title = 0;
11    private Handler mHandler = new Handler(){ 
12         public void handleMessage(Message msg) { 
13             switch (msg.what) { 
14             case 1: 
15                 updateTitle(); 
16                 break; 
17             } 
18         }; 
19     };
20    public void onCreate(Bundle savedInstanceState) { 
21         super.onCreate(savedInstanceState); 
22         setContentView(R.layout.main); 
23   
24         Timer timer = new Timer(); 
25       timer.scheduleAtFixedRate(new MyTask(), 1, 5000);  
26     } 
27   
28     private class MyTask extends TimerTask{ 
29         @Override 
30         public void run() { 
31      //处理事情
32             Message message = new Message(); 
33             message.what = 1; 
34             mHandler.sendMessage(message);
35   
36         }    
37     } 
38   
39   
40     public void updateTitle(){ 
41   
42         setTitle("Welcome to Mr Wei‘s blog " + title); 
43         title ++; 
44     } 
45 }
时间: 2024-10-14 10:07:04

Sub Thread to update main Thread (UI)的相关文章

Sub Thread to update main Thread (UI) 2

Sub Thread to update main Thread (UI)  2 Handler.post(somethread); Handler.sendMessage("Msg"); 1 import android.app.Activity; 2 import android.os.Bundle; 3 import android.os.Handler; 4 import android.os.Message; 5 import android.util.Log; 6 impo

Does Daemon Thread Exit with Main Thread?

主线程(进程)退出后,主线程创建的守护线程也会退出吗? 通过下面的代码测试: Demo1: 进程创建普通线程 #!/usr/bin/python3 # FileName: daemonThread.py # Author: lxw # Date: 2016-02-25 import threading import time def show(num): time.sleep(3) print("In show(): {0}".format(num)) with open("

MFC data forwarding to main thread via PostMessage

MFC data forwarding to main thread via PostMessage          up vote3down votefavorite 3 I have a C++/MFC application I need to restructure. The app used to process most of the data on the main thread, therefore blocking the input, and now I want to c

iOS Main Thread Checker: UI API called on a background thread的解释

Xcode打印栏出现如下警告: Main Thread Checker: UI API called on a background thread 这个是什么错误呢? 其实这并不一定是错误,也可以理解为一种警告,说他不是错误,是因为它不一定会影响你的代码功能,可能对你的实现功能毫无影响. 那么它的含义是这样: 这是Xcode 9的新特性:主线程检测器(Main Thread Checker). 出现的时候意味着:本来需要在主线程执行的代码 被你放在了子线程里边执行. 那么我们解决的话,只需要检查

主线程任务太多导致异常退出(The application may be doing too much work on its main thread)

今天花费了一天的时间来解决这个bug. 这种在程序运行期间出现的问题比较棘手,如果再没有规律的话就更难解决. 还好这个bug是由规律的,也就是说在程序执行半个小时左右后就会因为此异常而导致程序退出:那么在网上找了下原因,无非是说一下几点: 1.把业务放在子线程中去完成,然后通过handler来更新界面 2.通过runOnUiThread的方法来实现 再补充一点就是:优化代码,将不需要重复执行的代码执行一次就ok了,特别是需要绘制UI的代码更不能随便放在重复执行的地方 一.bug现场还原 我的程序

Service 是否在 main thread 中执行, service 里面是否能执行耗时的操作?

默认情况,如果没有显示的指 service 所运行的进程, Service 和 activity 是运行在当前 app 所在进程的 main thread(UI 主线程)里面.service 里面不能执行耗时的操作(网络请求,拷贝数据库,大文件 )特殊情况 ,可以在清单文件配置 service 执行所在的进程 ,让 service 在另外的进程中执行 <service android:name="com.baidu.location.f" android:enabled=&quo

在Main Thread中使用异步

Whenever you first start an Android application, a thread called "main" is automatically created. The main thread, also called the UI thread, is very important because it is in charge of dispatching the events to the appropriate widgets and this

main Thread ,worker Thread

哪个线程创建了view,哪个线程才能对这个view进行访问 一般是主线程创建的 view,所以,对view的访问:设置.读取,都是在主线程中完成的 特例:progressBar.setProgress方法可以在worker Thread中调用. ----每一个应用程序中,主线程通常用于接收用户的输入 ,以及将运算的结果反馈给用户 因此主线程一般是不能使用阻塞代码的.(比如耗时较长的操作-读取大文件,sleep等) 对于一些可能会产生阻塞的操作,必须放置在worker Thread当中. 于是产生

main thread starting…

执行结果例如以下: main thread starting- Thrad 2 staring- Thrad 2 end- Thrad 4 staring- Thrad 4 end- Thrad 1 staring- Thrad 1 end- Thrad 3 staring- Thrad 3 end- Thrad 5 staring- Thrad 5 end- main thread end- CountDownLatch方式代码例如以下: package com.test.thread; im