通过绑定从服务到活动进行通信?

时间:2011-12-29 03:34:30

标签: java android service android-activity bind

我想通过我的服务联系我的活动希望通过Bind。我已经盲目安排,但我只能通过我的活动与我的服务进行沟通。什么是我可以通过我的服务与我的活动沟通的最快捷最简单的方法?

p.s我想要联系的活动并不总是打开。我只想在打开时联系它

由于

1 个答案:

答案 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          
        }
}

还有其他注册接收器的方法,但我发现这种方式最简单。