我有一个具有三种布局的应用程序。
根据 android 文档,如果您FLAG_ACTIVITY_CLEAR_TOP
在意图中使用标志返回顶部活动,并且活动的启动模式设置为“标准”,您应该获得活动的新实例。这将加载在首选项中设置的不同布局。
我在运行 4.2.2 的 android 模拟器中得到了这种行为,而没有使用除FLAG_ACTIVITY_CLEAR_TOP
. 在我也运行 4.2.2 的 Nexus 7 中,除非我退出并重新启动应用程序,否则我永远不会获得新实例并获得旧布局。
我尝试将 'android:launchMode="standard"' 添加到清单中,并将FLAG_ACTIVITY_NEW_TASK
标志添加到意图中而没有任何变化。
这是清单的摘录和应该重新启动它的代码片段。
<activity
android:name="org.billthefarmer.accordion.MainActivity"
android:label="@string/app_name"
android:launchMode="standard"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
类的代码:
case android.R.id.home:
// app icon in action bar clicked; go home
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
return true;
有没有更好的方法来实现这一点,或者我错过了什么?