1、handler.post(runnable);运行的runnable接口仍然是在主线程中运行的。。
是否在主线程运行的区别在于是否有start方法。。比如new Thread().start();
2、Handler 默认运行在主线程中。
Msg Quene消息队列。。。。。。
如果需要在子线程中运行handler类 需要开启Looper 使用相当于获取主线程的Msg quene。。Looper.prepare();开启Looper.loop();开始循环
package com.example.asynthreadtest1; import java.util.concurrent.ExecutionException; import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.os.SystemClock; import android.app.Activity; import android.content.AsyncTaskLoader; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ProgressBar; public class MainActivity extends Activity { ProgressBar progress; Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); progress=(ProgressBar) findViewById(R.id.progressBar4); System.out.println("OnCreate"+Thread.currentThread().getId()); button=(Button) findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { MyThread myThread=new MyThread(); myThread.start(); } }); } class MyThread extends Thread{ @Override public void run() { // TODO Auto-generated method stub Looper.prepare(); Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub System.out.println("handler msg"); super.handleMessage(msg); } }; handler.sendEmptyMessage(1); Looper.loop(); super.run(); } } }
使用HandlerThread为我们封装了下线程,不需要手动开启消息循环队列
HandlerThread thread=new HandlerThread("hello"); thread.start(); handler=new Handler(thread.getLooper()){ @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub System.out.println("handlerMsg "+Thread.currentThread().getId()); super.handleMessage(msg); } }; handler.sendEmptyMessage(1);
3、子线程中运行
HandlerThread thread=new HandlerThread("MyHandlerThread"); thread.start(); handler=new Handler(thread.getLooper()); handler.post(new Runnable() { @Override public void run() { // TODO Auto-generated method stub } });
注意如果该线程运行很久的话考虑在onDestory();
hanlder.mHandler.removeCallbacks(mBackgroundRunnable);
相关推荐
赠送jar包:netty-handler-4.1.68.Final.jar; 赠送原API文档:netty-handler-4.1.68.Final-javadoc.jar; 赠送源代码:netty-handler-4.1.68.Final-sources.jar; 赠送Maven依赖信息文件:netty-handler-4.1.68....
赠送jar包:netty-handler-4.1.73.Final.jar; 赠送原API文档:netty-handler-4.1.73.Final-javadoc.jar; 赠送源代码:netty-handler-4.1.73.Final-sources.jar; 赠送Maven依赖信息文件:netty-handler-4.1.73....
handler发送和接收message的各种方式 (1)Handler.SendEmptyMessage(what); (2)Handler.obtainMessage(int what, int arg1, int arg2, Object obj).sendYToTarget(); (3)Message.obtain(handler, MESSAGE_MSG, 0, 0, ...
* 创建一个Handler对象,使用Handler对象h把Runnable的对象r压入队列 * 此时只会会执行Run()方法,但是不会开启新的线程 */ //Handler h = new Handler(); //h.post(r); /* * 在java中真正开启...
demo01: 通过handler.post()的方法可以更新ui demo02: 一秒钟切换一张图片 demo03: 霓虹灯动态效果的显示 demo04: 倒计时,停止倒计时 demo05: 通过handler.sendMessage和handleMessage发送处理消息 demo06: message...
通过 Foxit PDF Preview Handler 可以让你的OutLook2007预览PDF 文件。 Foxit PDF Preview Handler 1.1 For XP
赠送jar包:netty-handler-4.1.24.Final.jar; 赠送原API文档:netty-handler-4.1.24.Final-javadoc.jar; 赠送源代码:netty-handler-4.1.24.Final-sources.jar; 赠送Maven依赖信息文件:netty-handler-4.1.24....
android 中Handler 的几种写法,很简单的demo,大神简单修改下,用的是Handler.Callback,的方法
赠送jar包:netty-handler-4.1.65.Final.jar; 赠送原API文档:netty-handler-4.1.65.Final-javadoc.jar; 赠送源代码:netty-handler-4.1.65.Final-sources.jar; 赠送Maven依赖信息文件:netty-handler-4.1.65....
Handler对象中使用匿名内部类或非静态内部类正确地释放消息避免内存泄漏或增加Native内存,在Android中,Handler对象通常会被用来在主线程(UI线程)中处理消息,以更新UI界面。当我们在Handler对象中使用匿名内部类...
资源包括如何在一个activity A里激活另一个activity B。 然后在两个activity之间用handler传输数据。在activity A里定义全局变量handler,用sendMessage来发数据,在handler里数据以消息队列的方式发送。
赠送jar包:netty-handler-proxy-4.1.68.Final.jar; 赠送原API文档:netty-handler-proxy-4.1.68.Final-javadoc.jar; 赠送源代码:netty-handler-proxy-4.1.68.Final-sources.jar; 赠送Maven依赖信息文件:netty-...
赠送jar包:netty-handler-4.1.74.Final.jar; 赠送原API文档:netty-handler-4.1.74.Final-javadoc.jar; 赠送源代码:netty-handler-4.1.74.Final-sources.jar; 赠送Maven依赖信息文件:netty-handler-4.1.74....
赠送jar包:netty-handler-proxy-4.1.73.Final.jar; 赠送原API文档:netty-handler-proxy-4.1.73.Final-javadoc.jar; 赠送源代码:netty-handler-proxy-4.1.73.Final-sources.jar; 赠送Maven依赖信息文件:netty-...
赠送jar包:netty-handler-proxy-4.1.73.Final.jar; 赠送原API文档:netty-handler-proxy-4.1.73.Final-javadoc.jar; 赠送源代码:netty-handler-proxy-4.1.73.Final-sources.jar; 赠送Maven依赖信息文件:netty-...
感谢慕课网,浅谈handler
赠送jar包:netty-handler-4.1.65.Final.jar; 赠送原API文档:netty-handler-4.1.65.Final-javadoc.jar; 赠送源代码:netty-handler-4.1.65.Final-sources.jar; 赠送Maven依赖信息文件:netty-handler-4.1.65....
Handler使用简单功能强大,常被用作线程间传递消息的组件,而且还可以用于跨进程。 消息机制背后有包括Looper ,MessageQueue管理和分发消息的实现,同时在Native层也单独实现了一套类 似的机制,接收和处理Native...
Handler与AsyncTask使用示例,Handler AsyncTask 示例 looper
EPSON High Speed IC Handler User Manual。硬件资源介绍,设备设置及使用。通信功能设置方法及信号定义。