Android - 将活动中的数据发送到服务

Sou*_*nta 2 service android broadcastreceiver android-intent

我在我的主要活动中启动了本地服务.该服务负责网络I/O. 它还与我的应用程序中的其他活动交互.直到现在,该服务只是向活动"提供"数据(使用回调而不是Intents).

现在我需要将我的活动中的数据(自定义对象)发送到服务.我理解使用Intents的一种方法.我知道可以通过覆盖onStartCommand()我的服务来接收服务中的Intent .但是我不清楚每次从发送活动广播Intent时是否会调用onStartCommand.服务也可以BroadcastReceiver吗?如果是 - 如何?

谢谢.

Bin*_*ran 5

您可以在服务中创建BroadcastReceiver对象并将其注册以侦听您想要的任何广播事件.它是这样的:

BroadcastReceiver mScreenStateReceiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        //handle the broadcast event here
    }
};

@Override
public void onCreate() {
    super.onCreate();

    IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
    filter.addAction(Intent.ACTION_SCREEN_ON);
    registerReceiver(mScreenStateReceiver, filter);

}

@Override
public void onDestroy() {
    super.onDestroy();
    unregisterReceiver(mScreenStateReceiver);
}
Run Code Online (Sandbox Code Playgroud)

问候,