如何将附加内容传递给已经运行的活动

时间:2013-09-07 10:45:34

标签: java android android-intent android-activity

我有一个BroadcastReceiver会启动一个HomeActivity,其中包含一些与附加内容一起传递的信息。

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

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

2 个答案:

答案 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这个方法不起作用......