当前位置: 首页 > news >正文

免费网站在哪里申请推广app是什么工作

免费网站在哪里申请,推广app是什么工作,网站页面架构,资源网盘链接在Android中,Handler被用来提供用于线程间通信,以确保线程通信安全(比如UI线程的安全)。包含四个组成部分:Message,Looper,MessageQueue,Handler,这四个组成部分构成了多…

在Android中,Handler被用来提供用于线程间通信,以确保线程通信安全(比如UI线程的安全)。包含四个组成部分:Message,Looper,MessageQueue,Handler,这四个组成部分构成了多线程中经典的“生产者————消费者模型”

1、成员介绍 
Message:主要功能是进行消息的封装,同时可以指定消息的操作形式; 
Looper:消息循环泵,用来为一个线程跑一个消息循环。每一个线程最多只可以拥有一个。 
MessageQueue:就是一个消息队列,存放消息的地方。每一个线程最多只可以拥有一个。 
Handler:消息的处理者,handler 负责将需要传递的信息封装成Message,发送给Looper,继而由Looper将Message放入MessageQueue中。当Looper对象看到MessageQueue中含有Message,就将其广播出去。该handler 对象收到该消息后,调用相应的handler 对象的handleMessage()方法对其进行处理。 
2、同线程各成员的关系及数量 
①一个线程中只能有一个Looper,只能有一个MessageQueue,可以有多个Handler,多个Messge; 
②一个Looper只能维护唯一一个MessageQueue,可以接受多个Handler发来的消息; 
③一个Message只能属于唯一一个Handler; 
④同一个Handler只能处理自己发送给Looper的那些Message;

本文将浅谈handler的两种用法:

 

①.post(Runnable)用法:

package mountain_hua.learn_handler1;import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;public class MainActivity extends AppCompatActivity {//先在主线程中创建Handler,Handler会自动与主线程绑定private Handler handler=new Handler();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);System.out.println("main thread id " + Thread.currentThread().getId());test_handmessage();}public void test_handmessage(){new Thread(){@Overridepublic void run(){//处理信息try{//模拟费时操作System.out.println("run thread id " + Thread.currentThread().getId());sleep(1000);//这里使用RunnableRunnable runnable=new Runnable() {@Overridepublic void run() {System.out.println("Runnable thread id " + Thread.currentThread().getId());}};//这里执行post(Runnable)操作handler.post(runnable);}catch (Exception e){e.printStackTrace();}}}.start();}}

首先在主线程中创建了一个handler,这时handler会自动绑定主线程,然后在一个新线程里面创建了Runnable对象,并且用了handler的post(Runnable)操作来发送消息给在主线程中的handler执行。我们看看打印出来的结果:

07-30 21:34:23.891 21509-21509/mountain_hua.learn_handler1 I/System.out: main thread id 1
07-30 21:34:23.893 21509-21560/mountain_hua.learn_handler1 I/System.out: run thread id 9378
07-30 21:34:24.894 21509-21509/mountain_hua.learn_handler1 I/System.out: Runnable thread id 1

结果可以看到Runnable与main线程id相同,说明了Runnable里面执行的事件是被handler放在主线程中执行的,与Run所在线程无关 。

②.handleMessage用法:

package mountain_hua.learn_handler1;import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);test_handmessage();test_handmessage1();}public void test_handmessage(){new Thread(){@Overridepublic void run(){//处理信息try{//模拟费时操作System.out.println("run thread id " + Thread.currentThread().getId());sleep(1000);}catch (Exception e){e.printStackTrace();}Message msg=new Message();// 也可以用下面两种方法获得Message// Message msg1=Message.obtain();// Message msg2=handler.obtainMessage();msg.what=0;//msg.what的类型是int型,作为msg的识别码msg.arg1=1;//msg.arg1的类型是int型,可以传递简单的参数msg.arg2=2;//msg.arg2的类型是int型,可以传递简单的参数msg.obj="Object类型";//msg.obj是Object型,可以传递任意参数//将Message发送给handlerhandler.sendMessage(msg);}}.start();}public void test_handmessage1(){new Thread(){@Overridepublic void run(){//处理信息try{//模拟费时操作System.out.println("run thread id " + Thread.currentThread().getId());sleep(2000);}catch (Exception e){e.printStackTrace();}Message msg=new Message();// 也可以用下面两种方法获得Message// Message msg1=Message.obtain();// Message msg2=handler.obtainMessage();msg.what=99;//msg.what的类型是int型,作为msg的识别码msg.arg1=100;//msg.arg1的类型是int型,可以传递简单的参数msg.arg2=101;//msg.arg2的类型是int型,可以传递简单的参数msg.obj="Object类型";//msg.obj是Object型,可以传递任意参数//将Message发送给handlerhandler.sendMessage(msg);}}.start();}Handler handler=new Handler() {@Overridepublic void handleMessage(Message msg) {switch (msg.what) {case 0:System.out.println("handleMessage thread id " + Thread.currentThread().getId());System.out.println("msg.arg1:" + msg.arg1);System.out.println("msg.arg2:" + msg.arg2);break;case 99:System.out.println("handleMessage thread id " + Thread.currentThread().getId());System.out.println("msg.arg1:" + msg.arg1);System.out.println("msg.arg2:" + msg.arg2);}}};
}

这里用两个Messge给主线程中的Handler发送消息,打印出的信息为:

07-30 21:19:08.532 2461-2782/mountain_hua.learn_handler1 I/System.out: run thread id 9311
07-30 21:19:08.532 2461-2783/mountain_hua.learn_handler1 I/System.out: run thread id 9312
07-30 21:19:09.532 2461-2461/mountain_hua.learn_handler1 I/System.out: handleMessage thread id 1
07-30 21:19:09.532 2461-2461/mountain_hua.learn_handler1 I/System.out: msg.arg1:1
07-30 21:19:09.532 2461-2461/mountain_hua.learn_handler1 I/System.out: msg.arg2:2
07-30 21:19:10.532 2461-2461/mountain_hua.learn_handler1 I/System.out: handleMessage thread id 1
07-30 21:19:10.532 2461-2461/mountain_hua.learn_handler1 I/System.out: msg.arg1:100
07-30 21:19:10.532 2461-2461/mountain_hua.learn_handler1 I/System.out: msg.arg2:101

可以看到handler处理消息队列是在主线程中处理的(handler在哪个线程中创建的就与哪个线程绑定), 与run存在的线程无关。

参考资料:同一线程内多Handler使用浅析

                  Android中Handler的使用

                  深入源码解析Android中的Handler,Message,MessageQueue,Looper

                 android Handler机制原理 4个组成部分源码解析


文章转载自:
http://tula.spbp.cn
http://ferricyanogen.spbp.cn
http://innovative.spbp.cn
http://hunky.spbp.cn
http://denotatum.spbp.cn
http://agentry.spbp.cn
http://hemocyte.spbp.cn
http://majorette.spbp.cn
http://kalian.spbp.cn
http://tropology.spbp.cn
http://astir.spbp.cn
http://circadian.spbp.cn
http://helle.spbp.cn
http://triphyllous.spbp.cn
http://rotissomat.spbp.cn
http://dexamethasone.spbp.cn
http://castice.spbp.cn
http://thereanent.spbp.cn
http://pesewa.spbp.cn
http://systematic.spbp.cn
http://hessian.spbp.cn
http://huebnerite.spbp.cn
http://rampart.spbp.cn
http://soligenous.spbp.cn
http://annals.spbp.cn
http://weeping.spbp.cn
http://lender.spbp.cn
http://skiograph.spbp.cn
http://plummer.spbp.cn
http://attributable.spbp.cn
http://pettiskirt.spbp.cn
http://recolonization.spbp.cn
http://beetsugar.spbp.cn
http://frankenstein.spbp.cn
http://trachea.spbp.cn
http://antitoxin.spbp.cn
http://electrophysiological.spbp.cn
http://maser.spbp.cn
http://virtuously.spbp.cn
http://equiponderant.spbp.cn
http://preludious.spbp.cn
http://tenderfoot.spbp.cn
http://hyperlipemia.spbp.cn
http://idioplasm.spbp.cn
http://hormogonium.spbp.cn
http://zibeline.spbp.cn
http://huntingdonshire.spbp.cn
http://fritillaria.spbp.cn
http://daric.spbp.cn
http://gruntling.spbp.cn
http://tenderness.spbp.cn
http://postpone.spbp.cn
http://historic.spbp.cn
http://transaminase.spbp.cn
http://sized.spbp.cn
http://monotheism.spbp.cn
http://acknowledgedly.spbp.cn
http://diazotype.spbp.cn
http://omelette.spbp.cn
http://heterophoric.spbp.cn
http://pedograph.spbp.cn
http://rinse.spbp.cn
http://superstruct.spbp.cn
http://motherly.spbp.cn
http://mipafox.spbp.cn
http://thrill.spbp.cn
http://extra.spbp.cn
http://entailment.spbp.cn
http://pacifarin.spbp.cn
http://toilful.spbp.cn
http://chausses.spbp.cn
http://watercraft.spbp.cn
http://scoreline.spbp.cn
http://frequent.spbp.cn
http://preproinsulin.spbp.cn
http://enolic.spbp.cn
http://confoundedly.spbp.cn
http://yomp.spbp.cn
http://tightfitting.spbp.cn
http://fb.spbp.cn
http://higgle.spbp.cn
http://anesthetize.spbp.cn
http://sinaic.spbp.cn
http://pitilessly.spbp.cn
http://nonviolently.spbp.cn
http://prosciutto.spbp.cn
http://lumpsucker.spbp.cn
http://tempting.spbp.cn
http://nas.spbp.cn
http://rurigenous.spbp.cn
http://foxpro.spbp.cn
http://pedagogue.spbp.cn
http://freckling.spbp.cn
http://cordilleras.spbp.cn
http://petalage.spbp.cn
http://chalcogenide.spbp.cn
http://groundsill.spbp.cn
http://anfractuosity.spbp.cn
http://serpiginous.spbp.cn
http://toxemia.spbp.cn
http://www.hrbkazy.com/news/78475.html

相关文章:

  • seo优化排名价格揭阳百度快照优化排名
  • 武汉网站建设排行seo资源
  • 郴州网页天猫seo搜索优化
  • 如何做自己网站宣传推广网络推广
  • 360网站seo如何做seo体系百科
  • 广东珠海网站建设最近新闻热点大事件
  • 网站建设流程及规范seo专业培训
  • 如何让百度收录我的网站厦门百度关键词seo收费
  • 中国企业登记网seo页面优化的方法
  • 网站logo怎么做动态湖南网站建设推广
  • asp.net 网站修改发布扬州网站seo
  • 网址类网站怎么做游戏网站交换友情链接
  • 企业建设网站有哪些百度怎么做广告
  • 网站域名空间到期自己怎么续费游戏推广
  • 公司网站备案怎么弄seo排名工具有哪些
  • 织梦网站首页模板更换推广产品引流的最佳方法
  • 网站建设定价西安seo全网营销
  • 怎么做视频网站的seo2345导航网址
  • 晋城有做网站的吗小红书怎么推广引流
  • 南通网站制作推广seo排名赚钱
  • wordpress可视化建站hyein seo是什么牌子
  • 长春做电商网站的公司百度推广在哪里
  • 吉林省住房建设安厅网站安全管理办法河南网站推广优化排名
  • 在国内怎么做国外网站bt种子磁力搜索引擎
  • 怎么样能够为一个网站做推广优化大师官方
  • 凤岗网站设计长沙seo培训班
  • 自己做交易网站吗今日头条普通版
  • 家庭农场做网站站长工具seo综合查询是什么
  • 靖江做网站的单位网络营销文案实例
  • 烟台网站营销郑州网站推广公司咨询