我有一个远程服务,我传递了一些额外的东西和。服务可以从活动或广播接收器启动。从活动开始时,我传入附加内容和操作,我可以在服务中检索它们。但是当我从广播接收器做同样的事情时,调用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()