我想通过我的服务联系我的活动希望通过Bind。我已经盲目安排,但我只能通过我的活动与我的服务进行沟通。什么是我可以通过我的服务与我的活动沟通的最快捷最简单的方法?
p.s我想要联系的活动并不总是打开。我只想在打开时联系它
由于
答案 0 :(得分:2)
这样做的一种方法是通过广播。在您的服务中,您可以按如下方式发送广播:
Intent myBroadcast = new Intent(MYCONSTANT);
myBroadcast.putExtra("data", "This is a message");
getApplicationContext().sendBroadcast(myBroadcast);
然后在活动中你会有一个听众如下:
// initialize in constructor
private BroadcastReceiver myReceiver = new MyReceiver();
// in onCreate, register the receiver
this.registerReceiver(myReceiver, new IntentFilter(Service.MYCONSTANT));
// then have a class to receive the broadcast
private class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//do stuff
}
}
还有其他注册接收器的方法,但我发现这种方式最简单。