我需要确定,如果我的申请被强制关闭,崩溃或正常终止。我的问题是:你如何在Android环境中做这样的事情。 处理异常很容易,我只需要替换Thread.setDefaultExceptionHandler。 困难的部分是:我如何区分关闭力与“正常”(如背压,主页按钮+大量时间等)?
原因是:我们可以将本地数据库的内容同步到服务器。并且我们有充分的理由允许此操作(仅在状态1中)的Main活动,而不是在状态2.但是,如果用户在程序中找到与db相关的语义错误,则在Main活动的状态2中,然后他或她可以卡在那里。
我们准备好来电中断和其他配置更改,因此,如果应用程序陷入状态2,然后强制关闭应用程序,然后重新打开它,仍然会让用户处于第2阶段,而不是阶段1。
因此,我们希望为用户留出一种方法,在强制关闭卡片后返回到第1阶段,并且能够同步数据库,这样就可以保存他或她的大部分工作。
答案 0 :(得分:3)
不幸的是没有办法。当用户或系统强制停止应用程序时,整个过程就会被终止。没有回调通知您发生了这种情况。即使onDestroy()
也不能保证被调用。文档中记录了这一点:"There are situations where the system will simply kill the activity's hosting process without calling this method (or any others) in it ..."
答案 1 :(得分:0)
也许您可以在启动时编写一个在关机时删除的文件。如果应用程序启动并且此文件存在,您可以断定它是强制关闭的。