[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 不工作 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 社区版),但我试过这样做几种不同的方式,和它仍不工作。

所以我有两个问题:

  1. 我的 IntentCompat 的企图的使用看起来正确吗?

  2. 怎么说,编译器要停止说"makeRestartActivityTask"未定义的符号?

解决方法 1:

这是我如何使用 IntentCompat

    Intent intentToBeNewRoot = new Intent(this, MainActivity.class);
    ComponentName cn = intentToBeNewRoot.getComponent();

    Intent mainIntent = IntentCompat.makeRestartActivityTask(cn);

    startActivity(mainIntent);

这有效地用 MainActivity 替换我不长想任务根。它在 Gingerbeard 和 IC 工作。我没见过的"是未定义的符号"的消息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值