activity与service 使用Handler Messenger数据传递
生活随笔
收集整理的這篇文章主要介紹了
activity与service 使用Handler Messenger数据传递
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
service 中創(chuàng)建handler
?
/*** 用于接收從客戶端傳遞過(guò)來(lái)的數(shù)據(jù)*/ class IncomingHandler extends Handler {@Overridepublic void handleMessage(Message msg) {switch (msg.what) {case 6:Log.i("map", "thanks,Service had receiver message from client!");break;default:super.handleMessage(msg);}} }/*** 創(chuàng)建Messenger并傳入Handler實(shí)例對(duì)象*/ final Messenger mMessenger = new Messenger(new IncomingHandler()); /*** 當(dāng)綁定Service時(shí),該方法被調(diào)用,將通過(guò)mMessenger返回一個(gè)實(shí)現(xiàn)* IBinder接口的實(shí)例對(duì)象*/ @Override public IBinder onBind(Intent intent) {Log.i(TAG, "Service is invoke onBind");return mMessenger.getBinder(); }?
activity 中創(chuàng)建Messenger和ServiceConnection
?
?
/*** 與服務(wù)端交互的Messenger*/ Messenger mMessenger = null;/** Flag indicating whether we have called bind on the service. */ boolean mBound;/*** 實(shí)現(xiàn)與服務(wù)端鏈接的對(duì)象*/ private ServiceConnection mConnection = new ServiceConnection() {public void onServiceConnected(ComponentName className, IBinder service) {/*** 通過(guò)服務(wù)端傳遞的IBinder對(duì)象,創(chuàng)建相應(yīng)的Messenger* 通過(guò)該Messenger對(duì)象與服務(wù)端進(jìn)行交互*/mMessenger = new Messenger(service);mBound = true;}public void onServiceDisconnected(ComponentName className) {// This is called when the connection with the service has been// unexpectedly disconnected -- that is, its process crashed.mMessenger = null;mBound = false;} };開(kāi)啟service
?
bindService(new Intent(MainActivity.this, ForegroundService.class), mConnection,Context.BIND_AUTO_CREATE);activity 發(fā)送數(shù)據(jù)到service
?
public void sayHello(View v) {if (!mBound) return;// 創(chuàng)建與服務(wù)交互的消息實(shí)體MessageMessage msg = Message.obtain(null, 6, 0, 0);try {//發(fā)送消息mMessenger.send(msg);} catch (RemoteException e) {e.printStackTrace();} }?
總結(jié)
以上是生活随笔為你收集整理的activity与service 使用Handler Messenger数据传递的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [100124]红楼梦:林黛玉与北静王【
- 下一篇: linux makefile教程,Mak