我在我的主要活动中启动了本地服务。该服务负责网络I / O.它还与我的应用程序中的其他活动交互。直到现在,该服务只是向活动“提供”数据(使用回调而不是Intents。)
现在我需要将活动中的数据(自定义对象)发送到服务。我理解使用Intents的一种方法。我知道可以通过覆盖我服务中的onStartCommand()
来接收服务中的Intent。但是我不清楚每次从发送活动广播Intent时是否会调用onStartCommand。服务也可以是BroadcastReceiver
吗?如果是 - 如何?
感谢。
答案 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);
}
此致