我的任务 A、B、C、D 中有四项活动。
活动按A->B->C->D的顺序展开。
这里,
我想从 D 回到活动 A 并恢复该活动。
所以我使用了意图标志i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
在 stmt 1 之后不再需要活动 B、C、D 实例。
我去找标志来完成这个,Intent.FLAG_ACTIVITY_CLEAR_TOP
在我使用上述 1 和 2 的应用程序中,我尝试实现类似
- 返回并恢复活动 A 并从堆栈中删除其他活动,
所以我尝试过。
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //vise versa
使用上面的代码,两个标志都在这里使用这个参考
(Android:setFlags 和 addFlags for intent 有什么区别)
我无法同时完成这些任务(恢复活动 A 并清除其他)。
实际调用场景是
when i use the CLEAR flag the call is like D->oncreate(A) and clear BCD
when i use the REORDER flag the call is like D->onrestart(A).
那么我如何结合这些标志来获得组合动作来恢复 A 并清除其他,或者有任何其他方法可以做到这一点。
这是我的清单
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tpv.vptest"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".NeverStopActivity"
android:label="@string/title_activity_main"
android:launchMode="singleInstance">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
活动 1->2
Intent i = new Intent(getApplicationContext(), TopMenuBar.class);
startActivity(i);
- 您可以在 1 秒内再次执行此操作 - 重试/取消
活动 2->3
Intent i = new Intent(getApplicationContext(),
Activity3.class);
startActivity(i);
和 3-> 1
Intent i = new Intent(getApplicationContext(),
NeverStopActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(i);