我正在尝试实现一个按钮,使我的应用程序返回到第一个 Activity 并表现得(几乎)完全重新启动。这段代码
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 not working Android
Clear all activities in a task?
阅读细则让我相信我应该使用 android-support-v4.jar 中的 IntentCompat 类,http://developer.android.com/reference/android/support/v4/content/IntentCompat.html
不幸的是,该文档不包含任何示例,而且我非常不确定应该如何使用 IntentCompat。我发现的唯一例子是:Not start MainActivity with android 2.3
这让我相信我应该做这样的事情:
Intent newIntent = IntentCompat.makeRestartActivityTask(cn);
但这给我一个编译器错误,说“makeRestartActivityTask”是一个 undefined symbol 。
我猜这意味着我没有将 android-support-v4.jar 正确添加到我的构建环境(IntelliJ IDEA 12 社区版),但我已经尝试以多种不同的方式这样做,但它仍然没有工作。
所以我有两个问题:
我尝试使用 IntentCompat 看起来正确吗?
如何让编译器停止说“makeRestartActivityTask”是一个 undefined symbol ?
最佳答案
更新
Google 已删除当前支持库版本中的方法 IntentCompat.makeRestartActivityTask()
。相反,您可以只使用普通的 Android API:
ComponentName cn = intent.getComponent();
Intent.makeRestartActivityTask(cn);
我希望这可以节省人们寻找替代品的时间;)
关于android - 如何使用 IntentCompat.makeRestartActivityTask()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19182233/