android 如何将带有extra的Intent传递到已运行的Activity

khbbv19g  于 2023-04-04  发布在  Android
关注(0)|答案(3)|浏览(133)

我有一个BroadcastReceiver,它启动一个HomeActivity,其中传递了一些额外的信息。
当activity已经在运行,广播接收器再次被触发,并尝试使用新信息启动HomeActivity时,会发生什么?activity的OnResume()OnCreate()是否执行?
如果没有,当触发BroadcastReceiver时,是否有其他方法可以传递/重新加载正在运行的Activity?

nom7f22z

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();
   }
   ...
}
8xiog9wr

8xiog9wr2#

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

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

似乎扩展android.support.v7.app.ActionBarActivity此方法不起作用...

qkf9rpyu

qkf9rpyu3#

忘记从Broadcastreceiver开始活动,谷歌添加了自Android 12蹦床预防.见文档:https://developer.android.com/about/versions/12/behavior-changes-12

相关问题