我有一个BroadcastReceiver
启动一个,其中HomeActivity
包含一些与附加组件一起传递的信息。
当活动已经在运行并且广播接收器再次被触发并尝试HomeActivity
使用新信息启动时会发生什么。OnResume()
活动的or是否OnCreate()
执行?
BroadcastReceiver
如果没有,当 a被触发时,是否还有其他方法可以传递/重新加载正在运行的活动?
我有一个BroadcastReceiver
启动一个,其中HomeActivity
包含一些与附加组件一起传递的信息。
当活动已经在运行并且广播接收器再次被触发并尝试HomeActivity
使用新信息启动时会发生什么。OnResume()
活动的or是否OnCreate()
执行?
BroadcastReceiver
如果没有,当 a被触发时,是否还有其他方法可以传递/重新加载正在运行的活动?
确保从 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();
}
...
}
只需扩展 Cory Roy 的答案,您还必须在 AndroidManifest.xml 中定义“SingleTop”。
<activity
android:name="MainActivity"
android:launchMode="singleTop"
看来扩展android.support.v7.app.ActionBarActivity这个方法是行不通的……