【问题标题】:Android - Sending data from an activity to a serviceAndroid - 将数据从活动发送到服务
【发布时间】:2010-08-02 04:57:48
【问题描述】:
我有一个在我的主要活动中启动的本地服务。该服务负责网络 I/O。它还与我的应用程序中的其他活动交互。直到现在,服务只是“提供”数据给活动(使用回调而不是意图)。
现在我需要将数据(自定义对象)从我的活动发送到服务。我了解使用 Intents 的一种方法。我知道可以通过覆盖我的服务中的onStartCommand() 来接收服务中的 Intent。但我不清楚每次我从发送活动中广播 Intent 时是否会调用 onStartCommand。服务也可以是 BroadcastReceiver 吗?如果是 - 如何?
谢谢。
【问题讨论】:
标签:
android
service
android-intent
broadcastreceiver
【解决方案1】:
您可以在服务中创建一个 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);
}
问候,