gpt4 book ai didi

android - 即使在设置 launchMode ="singleTop"后也会重新创建 Activity

转载 作者:太空宇宙 更新时间:2023-11-03 12:30:55 27 4
gpt4 key购买 nike

我正在使用自定义方案为 Fitbit 实现 OAuth,为此我需要在用户在默认浏览器中登录后从堆栈顶部使用调用 Activity 的实例,并且被重定向到 CALLBACK URL。不是调用 onNewIntent(),而是重新创建 Activity,这不是我所需要的。

<activity
android:name=".AppsAndDevicesActivity"
android:launchMode="singleTop">
<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="snbr" />
</intent-filter>
</activity>

我使用以下代码从 Fragment 打开浏览器:

String url = Fitbit.buildAuthenticationURL();
Log.d("URL", url);
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
this.getActivity().startActivity(browserIntent);

最佳答案

将启动模式用作singleTask 因为:

单任务:

系统创建一个新任务并在新任务的根实例化 Activity 。 但是,如果 Activity 的一个实例已经存在于一个单独的任务中,系统将通过调用其 onNewIntent() 方法将 Intent 路由到现有实例,而不是创建一个新实例。只有一个 Activity 的实例可以同时存在。

注意:虽然 Activity 在新任务中启动,但“后退”按钮仍会将用户返回到上一个 Activity。

关于android - 即使在设置 launchMode ="singleTop"后也会重新创建 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34368086/

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