如何从静态 class 广播接收器访问意图值?

How to get access to intent values from static class broadcastreceiver?

是否可以从 broadcastreceiver 范围启动另一个 activity 的意图?

例如,我从 intentservice 得到一个答案,其中一个字符串作为广播中的 putExtra 值。现在我想将此字符串分配给 activity 中的局部变量,它接收广播或从接收 activity 的广播范围开始一个意图到另一个 activity 与 putExtra 包含从 intentservice 的广播中接收到的值。

谁能告诉我,这样做的首选方法是什么?

是的。 您可以在 BroadcastReceiveronReceive() 回调中使用 intent.getExtras() 来访问使用 putExtra

发送的任何内容

然后您可以构建一个新的 Intent 来启动一个 activity。如果您从非 activity 上下文启动 activity,请不要忘记添加 FLAG_ACTIVITY_NEW_TASK 标志。 您还可以从广播中复制所有附加内容:

@Override void onReceive(Context context, Intent intent) {
    String arg = intent.getExtras().getString("the key used in putExtra");
    // do something with the argument

    //or, launch an activity and pass that argument
    Intent activityIntent = new Intent(context, YourActivity.class);
    intent.setFlags(FLAG_ACTIVITY_NEW_TASK);
    activityIntent.putExtras(intent.getExtras());
    context.startActivity(activityIntent);
}