我有一个BroadcastReceiver
会启动一个HomeActivity
,其中包含一些与附加内容一起传递的信息。
当活动已经运行且广播接收器再次被触发并尝试使用新信息启动HomeActivity
时会发生什么。活动的OnResume()
或OnCreate()
是否会执行?
如果没有,是否有其他方式在触发BroadcastReceiver
时传递/重新加载正在运行的活动?
答案 0 :(得分:37)
确保从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();
}
...
}
答案 1 :(得分:3)
只要扩展Cory Roy的答案你必须定义" SingleTop"在AndroidManifest.xml中也是。
<activity
android:name="MainActivity"
android:launchMode="singleTop"
似乎扩展android.support.v7.app.ActionBarActivity这个方法不起作用......