如何将意图与extras传递给已经运行的活动

我有一个BroadcastReceiver启动一个HomeActivity与一些额外的信息传递。

当活动已经运行并且广播接收器被再次触发时会发生什么事情,它会尝试用新信息启动HomeActivity 。 活动的OnResume()OnCreate()是否执行?

如果没有,当BroadcastReceiver被触发时,还有其他方式来传递/重新加载运行活动吗?

Solutions Collecting From Web of "如何将意图与extras传递给已经运行的活动"

确保何时从BroadcastReceiver启动意图,设置FLAG_ACTIVITY_SINGLE_TOP标志。

 intent.addFlags (FLAG_ACTIVITY_SINGLE_TOP); ... class HomeActivity extends Activity { ... @Override protected void onNewIntent(Intent intent) { Bundle extras = intent.getExtras(); } ... } 

只要扩展Cory Roy的答案,您也必须在AndroidManifest.xml中定义“SingleTop”。

 <activity android:name="MainActivity" android:launchMode="singleTop" 

看来,扩展android.support.v7.app.ActionBarActivity此方法不起作用…