如何将值从 BroadcastReceiver 传递到 main activity
How to pass value from BroadcastReceiver to main activity
我想告诉我的 MainActivity,它在启动完成后由 BroadcastReceiver 自动启动。似乎可以像这样通过 putExtra 向 MainActivity 发送一些值:
public class StartAppAtBootReceiver extends BroadcastReceiver {
private static final String key_bootUpStart = "bootUpStart";
private static boolean bootUpStart = true;
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
Intent activityIntent = new Intent(context, MainActivity.class);
activityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
activityIntent.putExtra(key_bootUpStart, bootUpStart);
context.startActivity(activityIntent);
}
}
}
但是我如何才能在我的 MainActivity 中接收到该值?
在 BroadcastReceiver
上,您将意图发送到 Activity
。
我将您的密钥修改为 public 以便您可以重复使用它。
public static final String KEY_BOOTUP_START = "bootUpStart";
在 Activity
上处理 Intent。
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
processExtraData();
}
protected void onNewIntent(Intent intent)
{
super.onNewIntent(intent);
setIntent(intent);
processExtraData()
}
private void processExtraData()
{
Intent intent = getIntent();
// Use the data here.
boolean value = getIntent()
.getBooleanExtra(StartAppAtBootReceiver.KEY_BOOTUP_START, false);
}
在您的 activity 中,您可以获得开始您的活动的意图,例如:
在 onCreateActivity
:
Intent intent = getIntent();
比:
Object value = intent.getExtra("key_bootUpStart");
我想告诉我的 MainActivity,它在启动完成后由 BroadcastReceiver 自动启动。似乎可以像这样通过 putExtra 向 MainActivity 发送一些值:
public class StartAppAtBootReceiver extends BroadcastReceiver {
private static final String key_bootUpStart = "bootUpStart";
private static boolean bootUpStart = true;
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
Intent activityIntent = new Intent(context, MainActivity.class);
activityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
activityIntent.putExtra(key_bootUpStart, bootUpStart);
context.startActivity(activityIntent);
}
}
}
但是我如何才能在我的 MainActivity 中接收到该值?
在 BroadcastReceiver
上,您将意图发送到 Activity
。
我将您的密钥修改为 public 以便您可以重复使用它。
public static final String KEY_BOOTUP_START = "bootUpStart";
在 Activity
上处理 Intent。
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
processExtraData();
}
protected void onNewIntent(Intent intent)
{
super.onNewIntent(intent);
setIntent(intent);
processExtraData()
}
private void processExtraData()
{
Intent intent = getIntent();
// Use the data here.
boolean value = getIntent()
.getBooleanExtra(StartAppAtBootReceiver.KEY_BOOTUP_START, false);
}
在您的 activity 中,您可以获得开始您的活动的意图,例如:
在 onCreateActivity
:
Intent intent = getIntent();
比:
Object value = intent.getExtra("key_bootUpStart");