【发布时间】:2012-07-21 09:57:22
【问题描述】:
我有一个远程服务,我传递了一些附加功能。该服务既可以从一个活动启动,也可以从一个广播接收器启动。从活动开始时,我传递了额外内容和一个操作,我可以在服务中检索它们。但是当我从广播接收器做同样的事情时,调用getExtra() 或getAction 都返回null。
这是从广播接收器开始的方式
public void onReceive(Context context, Intent intent) {
...
Intent service = new Intent(context, MyService.class);
intent.setAction("receieverAction");
intent.putExtra("some_extra", "extra_value");
context.startService(service);
}
然后在服务中我调用 getExtras 和 getAction() 都为空
public int onStartCommand(Intent intent, int flags, int startId) {
String action = intent.getAction(); // This is null when started from broadcast receiver
String extra = intent.getStringExtra("some_extra"); // and so is this
...
return START_NOT_STICKY;
}
这是否与广播接收器有关,或者当接收器调用startService()时服务已经启动
【问题讨论】:
标签: android service broadcastreceiver android-service