gpt4 book ai didi

Android:如何在使用 SingleTask 时清除 Intent 堆栈

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:06:47 26 4
gpt4 key购买 nike

我在我的应用程序中使用 Twitter oAuth 库。用户正在使用 Twitter 帐户登录。

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

首先,Manifest.xml,所以我按照 Twitter api 的要求设置了 launchMode=singleTask:

<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:scheme="my_twitter_scheme" />
</intent-filter>
</activity>

这是我开始 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 实例调用 Activity B。

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

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

最佳答案

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

只需在启动 Activity 后调用 finish() 方法,这样 Activity A 就会完成,当用户在 Activity B 中按下后退按钮时,应用程序会如您所愿返回主屏幕。

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

关于Android:如何在使用 SingleTask 时清除 Intent 堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12091945/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com