如何将带有附加内容的意图传递给已在运行的活动

我有一个启动的,其中包含一些附加信息。BroadcastReceiverHomeActivity

当活动已在运行并且广播接收器再次被触发时会发生什么,该接收器尝试使用新信息启动。活动的 或 是否执行?HomeActivityOnResume()OnCreate()

如果没有,在触发 时,是否有任何其他方法可以传递/重新加载正在运行的活动?BroadcastReceiver


答案 1

确保在从广播接收器启动意向时设置FLAG_ACTIVITY_SINGLE_TOP标志。

intent.addFlags (FLAG_ACTIVITY_SINGLE_TOP);

...


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

答案 2

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

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

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


推荐