我想实现一个按钮,将会导致我的应用程序会回到第一项活动和行事,如果它 (几乎) 重新启动都结束。此代码
Intent newIntent =
new Intent(currentActivity.getApplicationContext(), StartActivity.class);
newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK + Intent.FLAG_ACTIVITY_CLEAR_TASK);
currentActivity.startActivity(newIntent);
似乎为较新的平板电脑工作确定,在运行 Android 4.1,但较旧的设备运行 Android 2.3.4 对它不起作用。
我发现几个对此线程:
Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK 不工作 Android
清除所有活动的一项任务吗?
阅读精细打印使我相信我应该在 android-支持-v4.jar, http://developer.android.com/reference/android/support/v4/content/IntentCompat.html中使用 IntentCompat 类
不幸的是,文档中不包含任何的例子,和我非常不确定我应如何使用 IntentCompat。这是我找到的唯一例子:无法启动与 android 2.3 MainActivity
由此,我相信应该做这样的事情:
Intent newIntent = IntentCompat.makeRestartActivityTask(cn);
但这给我一个编译器错误,说"makeRestartActivityTask"未定义的符号。
我猜这就意味着我没有正确地添加 android-支持-v4.jar 我生成环境 (IntelliJ 想法 12 社区版),但我试过这样做几种不同的方式,和它仍不工作。
所以我有两个问题:
-
我的 IntentCompat 的企图的使用看起来正确吗?
-
怎么说,编译器要停止说"makeRestartActivityTask"未定义的符号?
解决方法 1:
这是我如何使用 IntentCompat
Intent intentToBeNewRoot = new Intent(this, MainActivity.class);
ComponentName cn = intentToBeNewRoot.getComponent();
Intent mainIntent = IntentCompat.makeRestartActivityTask(cn);
startActivity(mainIntent);
这有效地用 MainActivity 替换我不长想任务根。它在 Gingerbeard 和 IC 工作。我没见过的"是未定义的符号"的消息。