我的应用程序有一个 Activity A,它触发 B,B 又触发 C。
Activity A 是在 list 文件中带有 intent 标志 android:noHistory="true"的启动器。这显示了启动画面。 2 秒后,它使用 Intent 标志 FLAG_ACTIVITY_NO_HISTORY 触发 B。 B 在没有任何 Intent 标志的情况下正常触发 C。现在 Stack 将只有 Activity C。
在 Activity C 中,每当按下返回时,它都会触发 Activity B。现在 Stack 应该只有 Activity B。它不应该有任何其他 Activity 的痕迹。
我在 Activity C 中使用了以下代码。但是标志 FLAG_ACTIVITY_NEW_TASK 只能从 API 11 获得。该应用程序应该支持 API 8 的设备。请协助我使用正确的 Intent 标志来实现所解释的场景
代码:
Intent dragDropIntent = new Intent("android.intent.action.DRAGDROP");
dragDropIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
dragDropIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
我同意在没有历史记录的情况下开始 Activity C 会有所帮助。但是做一些我不想做的技术限制。提前致谢
最佳答案
你正在寻找这个:
Intent intent = new Intent(activity, activityClass);
ComponentName cn = intent.getComponent();
Intent mainIntent = IntentCompat.makeRestartActivityTask(cn);
activity.startActivity(mainIntent);
使用来自 google 的 android 兼容性库 - 在 sdk 中找到。
或使用finish()
关于android - 类似于 API 8 中的 FLAG_ACTIVITY_CLEAR_TASK 的标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17585073/