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

时间:2010-08-02 04:57:49

标签: android service android-intent broadcastreceiver

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

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

感谢。

1 个答案:

答案 0 :(得分: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);
}

此致