我有一个BroadcastReceiver,它启动一个HomeActivity,其中传递了一些额外的信息。当activity已经在运行,广播接收器再次被触发,并尝试使用新信息启动HomeActivity时,会发生什么?activity的OnResume()或OnCreate()是否执行?如果没有,当触发BroadcastReceiver时,是否有其他方法可以传递/重新加载正在运行的Activity?
BroadcastReceiver
HomeActivity
OnResume()
OnCreate()
nom7f22z1#
确保从BroadcastReceiver启动Intent时设置了FLAG_ACTIVITY_SINGLE_TOP标志。
intent.addFlags (FLAG_ACTIVITY_SINGLE_TOP); ... class HomeActivity extends Activity { ... @Override protected void onNewIntent(Intent intent) { Bundle extras = intent.getExtras(); } ... }
8xiog9wr2#
只是扩展Cory Roy的答案,您还必须在AndroidManifest.xml中定义“SingleTop”。
<activity android:name="MainActivity" android:launchMode="singleTop"
似乎扩展android.support.v7.app.ActionBarActivity此方法不起作用...
qkf9rpyu3#
忘记从Broadcastreceiver开始活动,谷歌添加了自Android 12蹦床预防.见文档:https://developer.android.com/about/versions/12/behavior-changes-12
3条答案
按热度按时间nom7f22z1#
确保从BroadcastReceiver启动Intent时设置了FLAG_ACTIVITY_SINGLE_TOP标志。
8xiog9wr2#
只是扩展Cory Roy的答案,您还必须在AndroidManifest.xml中定义“SingleTop”。
似乎扩展android.support.v7.app.ActionBarActivity此方法不起作用...
qkf9rpyu3#
忘记从Broadcastreceiver开始活动,谷歌添加了自Android 12蹦床预防.见文档:https://developer.android.com/about/versions/12/behavior-changes-12