如何清除堆栈中的所有活动?

Ric*_*ard 6 android android-manifest

我无法使用Intent.FLAG_ACTIVITY_CLEAR_TOP和android:launchMode ="singleInstance"弹出堆栈中的所有活动.

在我的应用程序活动A中,启动活动B(通过startActivity),然后启动活动C(通过startActivity).在活动C上,用户按下菜单项以返回活动A.当他们到达活动A时,我只想要堆栈上的A,这样如果他们点击后退按钮,他们将返回到主屏幕(桌面).

这是当用户按下按钮返回A时我正在使用的代码:

Intent i = new Intent(this, A.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)

所有活动在项目清单中定义为android:launchMode ="singleInstance".

我的代码似乎不起作用.一旦我回到活动A,如果我单击后退按钮,我将返回活动C.我是否误解了如何使用Intent.FLAG_ACTIVITY_CLEAR_TOP?

Al *_*ton 2

我一直发现确保 C 从堆栈中删除的最佳方法是在 startActivity 之后调用 finish() 以从堆栈中删除 C。

该文档确实读起来好像事情会按照您预期的方式运行,但似乎不会发生这种情况,因此 finish() 将确保删除 C 。