activity与service使用Messenger通信

activity与service使用Messenger通信

ID:38579163

大小:53.50 KB

页数:6页

时间:2019-06-15

activity与service使用Messenger通信_第1页
activity与service使用Messenger通信_第2页
activity与service使用Messenger通信_第3页
activity与service使用Messenger通信_第4页
activity与service使用Messenger通信_第5页
资源描述:

《activity与service使用Messenger通信》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Android开发——Activity与service使用Messenger通信Messenger对象可以发送Message,送出的消息放在消息池中,由主线程依次取出,交给和Message关联的Handle处理,而Messenger可以在创建时和Handle对象关联,所以由哪个Messenger发出的Message,就可以由和这个Messenger关联的Handle处理。所以为了实现Activity和Service的通信,我们可以在Activity和Service中分别定义一个Handle类,用来处理和这个Handle相关联的Messenger发出的Mess

2、age。并且用这个类对象去创建Messenger对象。具体例子如下:Activity的代码publicclassSimpleMathServiceDemoextendsActivity{//privateMathServicemathService;privateMessengersMessenger=null;privatebooleanisBound=false;TextViewlabelView;privatefinalMessengeraMessenger=newMessenger(newActivityHandle());classActivity

3、HandleextendsHandler{@OverridepublicvoidhandleMessage(Messagemsg){//TODOAuto-generatedmethodstubBundlebundle=newBundle();bundle=msg.getData();labelView.setText(bundle.getCharSequence("fromservice"));super.handleMessage(msg);}}@OverridepublicvoidonCreate(BundlesavedInstanceState){su

4、per.onCreate(savedInstanceState);setContentView(R.layout.main);labelView=(TextView)findViewById(R.id.label);ButtonbindButton=(Button)findViewById(R.id.bind);ButtonunbindButton=(Button)findViewById(R.id.unbind);ButtoncomputButton=(Button)findViewById(R.id.compute);bindButton.setOnCl

5、ickListener(newView.OnClickListener(){@Override6publicvoidonClick(Viewv){if(!isBound){finalIntentserviceIntent=newIntent(SimpleMathServiceDemo.this,MathService.class);bindService(serviceIntent,mConnection,Context.BIND_AUTO_CREATE);isBound=true;}}});unbindButton.setOnClickListener(n

6、ewView.OnClickListener(){@OverridepublicvoidonClick(Viewv){if(isBound){isBound=false;unbindService(mConnection);}}});computButton.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){if(sMessenger!=null){try{Bundlebundle=newBundle();bundle.putString("fromA

7、ctivity","从Activity发向Service");Messagemsg=Message.obtain();msg.setData(bundle);msg.replyTo=aMessenger;sMessenger.send(msg);}catch(RemoteExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}else{labelView.setText("没有启动服务!");}}6});}privateServiceConnectionmConnection=newSe

8、rviceConnection(){@Overrid

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。