Android使用Messenger實現service與activity交互
更新時間:2016年06月11日 16:07:14 作者:_江南一點雨
這篇文章主要介紹了android使用Messenger實現service與activity交互的相關資料,需要的朋友可以參考下
service與activity交互的方式有多種,這里說說使用Messenger來實現兩者之間的交互。
Service程序:
public class MessengerService extends Service { final Messenger mMessenger = new Messenger(new IncomingHandler()); @Override public IBinder onBind(Intent intent) { return mMessenger.getBinder(); } @SuppressLint("HandlerLeak") class IncomingHandler extends Handler { @Override public void handleMessage(Message msg) { switch (msg.what) { case 0: Toast.makeText(MessengerService.this,"Hello lenve!", Toast.LENGTH_LONG).show(); break; case 1: Toast.makeText(MessengerService.this,"Hello lenve!Hello world!", Toast.LENGTH_LONG).show(); break; default: break; } } } }
MainActivity.javaL:
public class MainActivity extends Activity { private Messenger mMessenger; private ServiceConnection conn; private Intent intent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); intent = new Intent(this,MessengerService.class); conn = new ServiceConnection() { @Override public void onServiceDisconnected(ComponentName name) { mMessenger = null; } @Override public void onServiceConnected(ComponentName name, IBinder service) { mMessenger = new Messenger(service); } }; } @Override protected void onStart() { super.onStart(); bindService(intent, conn, BIND_AUTO_CREATE); } @Override protected void onStop() { super.onStop(); unbindService(conn); } public void onClick(View v){ Message msg = null; switch (v.getId()) { case R.id.button1: msg = Message.obtain(null, 0, 0, 0); try { mMessenger.send(msg); } catch (RemoteException e) { e.printStackTrace(); } break; case R.id.Button01: msg = Message.obtain(null, 1, 0, 0); try { mMessenger.send(msg); } catch (RemoteException e) { e.printStackTrace(); } break; default: break; } } }
原文鏈接:http://blog.csdn.net/u012702547/article/details/46989417
以上就是本文的全部內容,希望對大家學習Android軟件編程有所幫助。
您可能感興趣的文章:
- Android檢測Activity或者Service是否運行的方法
- Android中Service和Activity相互通信示例代碼
- Android中Service與Activity之間通信的幾種方式
- Android Activity與Service通信(不同進程之間)詳解
- Android Activity 與Service進行數據交互詳解
- 淺談Android Activity與Service的交互方式
- Android實現Activity、Service與Broadcaster三大組件之間互相調用的方法詳解
- Android實現從activity中停止Service的方法
- Android中Service實時向Activity傳遞數據實例分析
- android使用service和activity獲取屏幕尺寸的方法
- 詳解Android Service與Activity之間通信的幾種方式
相關文章
android實用工具類分享(獲取內存/檢查網絡/屏幕高度/手機分辨率)
這篇文章主要介紹了android實用工具類,包括獲取內存、檢查網絡、屏幕高度、手機分辨率、獲取版本號等功能,需要的朋友可以參考下2014-03-03Android編程開發(fā)之TextView文字顯示和修改方法(附TextView屬性介紹)
這篇文章主要介紹了Android編程開發(fā)之TextView文字顯示和修改方法,結合實例詳細分析了Android中TextView控件關于文字的顯示及修改技巧,并附帶了TextView屬性介紹,需要的朋友可以參考下2015-12-12android指定DatePickerDialog樣式并不顯示年的實現代碼
下面小編就為大家?guī)硪黄猘ndroid指定DatePickerDialog樣式并不顯示年的實現代碼。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,祝大家游戲愉快哦2016-08-08android 獲取手機GSM/CDMA信號信息,并獲得基站信息的方法
下面小編就為大家?guī)硪黄猘ndroid 獲取手機GSM/CDMA信號信息,并獲得基站信息的方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11