我正在开发一个Android应用程序,正如预期的那样,我的代码会出现崩溃(错误,空指针等)的情况。
当应用程序崩溃时,它会重新启动自己,尽管我没有编写任何代码来执行此操作(我想这是默认行为?!),但问题是,应用程序在不正确的状态下打开。
以下是应用程序启动时通常发生的情况:
- 最初,应用程序带有“启动屏幕”。该屏幕尝试使用共享首选项中持久化令牌进行用户身份验证,并从服务器加载一些默认值并将它们保留在一些服务中。 - 根据登录成功与否,它要么转到主屏幕,要么转到登录屏幕。
当应用程序正常启动时,所有内容都可以正常工作,并按预期执行初始化序列。 但是,当由于崩溃而重新启动时,应用程序中的启动屏幕片段中将填充的值(如登录用户或从服务器加载默认值)全部无效,这意味着它们永远不能被执行。
这使我相信,当应用程序重新启动时,事件序列完全错误,即它似乎错误地重新启动了应用程序,并从错误的活动开始启动。
因此,这里的问题是:是什么确定了我的应用程序在崩溃时应该重新启动,以及如何确定它的启动方式?是否有任何事件可以捕获,以便我可以覆盖初始化序列?是否有一种方法可以强制应用程序始终从启动器活动开始启动?
非常感谢您的帮助。
当应用程序崩溃时,它会重新启动自己,尽管我没有编写任何代码来执行此操作(我想这是默认行为?!),但问题是,应用程序在不正确的状态下打开。
以下是应用程序启动时通常发生的情况:
- 最初,应用程序带有“启动屏幕”。该屏幕尝试使用共享首选项中持久化令牌进行用户身份验证,并从服务器加载一些默认值并将它们保留在一些服务中。 - 根据登录成功与否,它要么转到主屏幕,要么转到登录屏幕。
当应用程序正常启动时,所有内容都可以正常工作,并按预期执行初始化序列。 但是,当由于崩溃而重新启动时,应用程序中的启动屏幕片段中将填充的值(如登录用户或从服务器加载默认值)全部无效,这意味着它们永远不能被执行。
这使我相信,当应用程序重新启动时,事件序列完全错误,即它似乎错误地重新启动了应用程序,并从错误的活动开始启动。
因此,这里的问题是:是什么确定了我的应用程序在崩溃时应该重新启动,以及如何确定它的启动方式?是否有任何事件可以捕获,以便我可以覆盖初始化序列?是否有一种方法可以强制应用程序始终从启动器活动开始启动?
非常感谢您的帮助。