gpt4 book ai didi

Android Intent 重启应用程序

转载 作者:行者123 更新时间:2023-11-29 17:30:40 24 4
gpt4 key购买 nike

我有 2 个 Activity LoginActivity (singleTask)MainActivity (singleTop)。应用程序的入口点是登录 Activity 。它检查用户凭据是否可用,然后启动主要 Activity 。之后 LoginActivity 调用完成。这样我就可以防止用户返回登录。

startActivity(new Intent(getApplicationContext(), MainActivity.class));
finish();

因此 LoginActivity 从返回堆栈中清除。但是我刚刚发现调用 finish 的一个缺点:

当用户点击通知时我想启动 LoginActivity:

Intent intent = new Intent(this, LoginActivity.class);
mBuilder.setContentIntent(PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT));

但 LoginActivity 不再在堆栈上(它已完成),因此 android 将启动它的一个新实例。所以恰好整个app有两个实例。历史:

(1) Login -> Main
(2) Main -> (Click on notification) -> Login -> Main
(3) Main -> Main -> (go back)
(4) Main

由于 LoginActivity 是我的应用程序的入口点,我无法将通知点击路由到 MainActivity。相反,我希望应用程序完全重启。这可能吗?喜欢:

(2) Main -> (Click on notification) -> Login -> Main
(3) Main

最佳答案

LoginActivity 中,登录过程结束后,您将调用 finish()销毁该 Activity 。

但是,当用户点击从您的 MainActivity(从 LoginActivity 切换)创建的通知时,您将再次重定向到已经存在的 LoginActivity登录用户。你为什么不为它使用一个单独的 Activity ?

另外,如果我是你,我会在授权过程中这样做。

App opened -> Main -> onCreate -> isNotLoggedIn -> switchToLoginActivity

关于Android Intent 重启应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33153073/

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