Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android:如何在使用SingleTask时清除意图堆栈大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的应用程序中使用Twitter oAuth库.用户使用Twitter帐户登录.

在活动A中,可以使用Twitter登录.当用户登录时,我想启动没有历史记录的活动B.这是我的所有东西:

首先是Manifest.xml,所以我将launchMode = singleTask设置为Twitter api请求:

<activity
    android:name=".A_Activity"
    android:label="@String/app_name"
    android:launchMode="singleTask"
    android:theme="@android:style/Theme.black.NotitleBar">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.bROWSABLE" />
        <data android:scheR_45_11845@e="my_twitter_scheR_45_11845@e" />
    </intent-filter>
</activity>

这是我如何开始活动B:

Intent i = new Intent(A.this,B.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOp); 
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);

注意:我通过BroadcastReceiver实例调用活动B.

当我登录时,我的接收器正常启动活动B,但不幸的是,当我按下后退按钮时,应用程序返回活动A.

我想这是关于launchMode的,正如我所说,Twitter需要这个选项.我究竟做错了什么?任何帮助或建议(可能关于Twitter)都会很棒.

解决方法

我确信应该有更有效的方法解决这个问题,但我建议一些不同的东西.

只需在启动活动后调用finish()方法,因此活动A将完成,当用户按下活动B应用程序中的按钮时,您希望返回主屏幕.

同时检查两次对话以避免任何异常,即检查此question(以及答案)以了解我的意思.

大佬总结

以上是大佬教程为你收集整理的Android:如何在使用SingleTask时清除意图堆栈全部内容,希望文章能够帮你解决Android:如何在使用SingleTask时清除意图堆栈所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。