gpt4 book ai didi

android - 有什么办法可以改变Android在崩溃后重新启动 Activity 的行为

转载 作者:行者123 更新时间:2023-12-03 12:59:29 25 4
gpt4 key购买 nike

在阅读了关于这个主题的所有关于 SO 的问题后,我对此感到非常恼火。

崩溃会发生,没有人写出完美的代码。有些应用程序需要一定的逻辑层次结构。最好的例子是登录屏幕的想法,你在某个 Activity 中在服务器上做某事,现在应用程序崩溃了。重新启动后,应用程序丢失了所有登录 session 数据,保存它可能不是最安全的想法。因此,在崩溃后向用户显示登录屏幕将是最好和最合乎逻辑的做法。最好的用户体验。

然而,Android 决定记住 Activity 堆栈,但只重新启动最后一个工作的 Activity,它下面有一个“空白”应用程序。
我看到的唯一可行的选择是检查每一个 Activity 是否有一些登录状态可用,如果没有,则使用 clear-top 或 clear-task 启动登录(启动器) Activity 。但这几乎迫使你写一个基 extends Activity实现此行为的类,然后所有 Activity 都必须扩展它。但是,如果由于某种原因,由于需要扩展其他类型的 Activity 而无法扩展它怎么办?

android:clearTaskOnLaunch但是每次用户通过主页按钮退出时都会发生这种情况。有对手finishOnTaskLaunch每次用户按下主页按钮时完成一个 Activity 。因此,Android 开发人员意识到,有时人们希望应用程序在退出后以某种状态出现,但崩溃似乎是所有这一切所独有的。

使用自定义 UncaughtExceptionHandler让我有机会在崩溃后采取行动,但由于应用程序状态不可恢复,我只能执行除了 Android 自己的行为之外会发生的某些任务。

所以我的简单问题是,如果有任何内置于 Android 中的方法,它允许我以自然的方式更改 Android 的崩溃后行为,而不依赖于它正在运行的版本(在某种程度上)并且会带来一些流畅的用户体验。

最佳答案

我想说获得你想要的结果的正确方法是提供一个适当的父级或向上导航堆栈。您可以在此处了解更多信息 https://developer.android.com/training/implementing-navigation/ancestral.html .

但它的要点是使用父 Activity 的想法来提供适当的后退导航。如果 Activity 已经存在,它将返回到它,如果不存在(例如在崩溃场景中),它将在用户导航返回时启动正确的 Activity 。

NavUtils是一个方便的类来帮助构建这种行为,并且是支持库的一部分,可以在一系列不同的 API 级别上工作。

关于android - 有什么办法可以改变Android在崩溃后重新启动 Activity 的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46200991/

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