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

前端之家收集整理的这篇文章主要介绍了android – 如何使用IntentCompat.makeRestartActivityTask()?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图实现一个按钮,这将导致我的应用程序回到第一个活动,并表现为(几乎)重新启动.这段代码
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?

阅读精细的打印导致我相信我应该使用IntentCompat类在android-support-v4.jar,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”是一个未定义的符号.

我猜这是否意味着我没有将android-support-v4.jar正确添加到我的构建环境(IntelliJ IDEA 12社区版本)中,但是我已经尝试以几种不同的方式进行操作,它仍然不起作用.

所以我有两个问题:

>我尝试使用IntentCompat是否正确?
>如何让编译器停止说“makeRestartActivityTask”是一个未定义的符号?

解决方法

这就是我如何使用IntentCompat
Intent intentToBeNewRoot = new Intent(this,MainActivity.class);
    ComponentName cn = intentToBeNewRoot.getComponent();

    Intent mainIntent = IntentCompat.makeRestartActivityTask(cn);

    startActivity(mainIntent);

这有效地用MainActivity替代了我不再需要的任务根.它可以在Gingerbeard和ICS中使用.我没有看到“是一个未定义的符号”信息.

原文链接:https://www.f2er.com/android/310674.html

猜你在找的Android相关文章