Android使用Messenger实现service与activity交互
作者:_江南一点雨
这篇文章主要介绍了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之间通信的几种方式