我有一个远程服务,我传递了一些额外的东西。该服务可以从活动或广播接收器开始。当从活动开始时,我传递额外内容和动作,我能够在服务中检索它们。但是当我从广播接收器做同样的事情时,调用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()都为null
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()
答案 0 :(得分:1)
文档说:
特别是,您可能无法显示对话框或绑定到服务 在BroadcastReceiver中。
我猜这个问题大约来自starting service
的{{1}}。