android - 如何使用 IntentCompat.makeRestartActivityTask()?

标签 android android-intent

我正在尝试实现一个按钮,使我的应用程序返回到第一个 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 社区版),但我已经尝试以多种不同的方式这样做,但它仍然没有工作。

所以我有两个问题:

  1. 我尝试使用 IntentCompat 看起来正确吗?

  2. 如何让编译器停止说“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/

相关文章:

android - 将自定义对象从一个 Activity 传递到另一个 Parcelable vs Bundle

android - onActivityResult 中的空 Intent 附加功能

android - 减少 Button 内的文本填充

android - 将参数传递给 RequestListener Glide

java - 我们应该为 OnClickListeners 或内部命名类使用匿名类吗?

Android PDF 从内部存储打开后立即关闭

Android - sendOrderedBroadcast 帮助

android - 如何在用户单击并释放按钮时更改android按钮的颜色

android - 如何在 Android 上使用 UID 获取用户名?

audio - 如何在媒体播放器中播放音频文件