为什么用户可以在导航层次更深的屏幕上启动应用程序?使用Jetpack编写导航。我们在Crashlytics中登录的应用程序中看到崩溃。我们还记录了可以在崩溃事件日志中看到的屏幕视图。这使我们能够看到用户自启动以来在应用程序中的位置。我们崩溃是因为我们依赖于存储在单例存储库中的一些数据。如果用户通过我们指定的唯一方式进入该屏幕,这将是好的,但是从日志中我们可以看到会话启动,并且它们以某种方式立即出现在屏幕上。下面是firebase崩溃报告日志的屏幕截图:
egmofgnx1#
这是有可能的,这发生了。基本上,用户在更深的屏幕上最小化了应用程序,离开了一段时间,系统杀死了你的应用程序(进程死亡),然后用户再次启动应用程序:导航组件保存了最后一个可见屏幕,并在重新启动时自动恢复。看起来你需要重新设计一下应用程序,例如。如果屏幕需要上一个屏幕中的一些数据,将其作为屏幕参数传递,而不是保存在存储库中。屏幕参数将在进程死亡后继续存在。阅读onSaveInstanceState和SavedStateHandle。
onSaveInstanceState
SavedStateHandle
1条答案
按热度按时间egmofgnx1#
这是有可能的,这发生了。基本上,用户在更深的屏幕上最小化了应用程序,离开了一段时间,系统杀死了你的应用程序(进程死亡),然后用户再次启动应用程序:导航组件保存了最后一个可见屏幕,并在重新启动时自动恢复。
看起来你需要重新设计一下应用程序,例如。如果屏幕需要上一个屏幕中的一些数据,将其作为屏幕参数传递,而不是保存在存储库中。屏幕参数将在进程死亡后继续存在。
阅读
onSaveInstanceState
和SavedStateHandle
。