1

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

4

1 回答 1

1

文档说:

特别是,您可能不会在 BroadcastReceiver 中显示对话框或绑定到服务。

我想这个问题大约starting service来自broadcastreceiver.

于 2012-07-21T10:23:10.767 回答