当前位置: 移动技术网 > IT编程>移动开发>Android > Android使用Messenger实现service与activity交互

Android使用Messenger实现service与activity交互

2019年07月24日  | 移动技术网IT编程  | 我要评论

机械公敌下载,江苏徐州地震,穿越火线群

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;
  }
 }
}

原文链接:

以上就是本文的全部内容,希望对大家学习android软件编程有所帮助。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网