如何从静态 class 广播接收器访问意图值?
How to get access to intent values from static class broadcastreceiver?
是否可以从 broadcastreceiver
范围启动另一个 activity 的意图?
例如,我从 intentservice 得到一个答案,其中一个字符串作为广播中的 putExtra
值。现在我想将此字符串分配给 activity 中的局部变量,它接收广播或从接收 activity 的广播范围开始一个意图到另一个 activity 与 putExtra
包含从 intentservice 的广播中接收到的值。
谁能告诉我,这样做的首选方法是什么?
是的。
您可以在 BroadcastReceiver
的 onReceive()
回调中使用 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);
}
是否可以从 broadcastreceiver
范围启动另一个 activity 的意图?
例如,我从 intentservice 得到一个答案,其中一个字符串作为广播中的 putExtra
值。现在我想将此字符串分配给 activity 中的局部变量,它接收广播或从接收 activity 的广播范围开始一个意图到另一个 activity 与 putExtra
包含从 intentservice 的广播中接收到的值。
谁能告诉我,这样做的首选方法是什么?
是的。
您可以在 BroadcastReceiver
的 onReceive()
回调中使用 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);
}