我有一个多线程的Android应用程序。我的应用程序所做的一件事是通过webservices将各种数据保存到服务器上的数据库中。我试图弄清楚为什么事情没有正确保存到服务器,并在我的一个日志文件中看到,应用程序对象onCreate()方法和构造函数在其中一个请求进入服务器的过程中被调用。这些请求在后台,并通过intentservice发送。
我的应用程序设置为捕获未处理的异常并记录它们,我没有在那里看到anthing。应用onCreate()和构造函数被调用,应用程序被踢回主/第一个屏幕,然后用户必须重新登录,似乎数据库被擦除(这是我想知道的其他东西)。
所以,我的主要问题是:为什么应用程序对象onCreate()和Constructor被调用(为什么应用程序被杀死),为什么在上面发生时数据库被擦除因为如果我从内部强行停止设置,应用程序,它永远不会杀死我的数据库。
答案 0 :(得分:1)
两个字:低内存
我有同样的问题。暂时没有解决方案。尝试利用onLowMemory()方法,也许操作系统会省略你的应用程序。
当我从外部应用程序(例如相机或图库)返回onActivityResult()时,我的应用程序对象会随机重启(而不是任何时间)。
希望能有所帮助。
答案 1 :(得分:0)
如果应用程序不是服务,而是一个调用你的意图服务的“正常”应用程序,它将受到正常应用程序生命周期的限制:这意味着它将在后台被杀死。
在此网站上查找解释图片:http://developer.android.com/guide/topics/fundamentals/activities.html
记下左边的红色“处理被杀”部分,随后是“onCreate()”。
答案 2 :(得分:0)
我实际上看到过非常类似的行为是由NumberFormater尝试解析空字符串引起的。在调用parse()之后,应用程序只需将自身重置回启动屏幕,完全没有错误。追踪是不好玩的,几乎跨过一半的代码库试图找出发生了什么 - 调试器断开连接并且当踩到解析调用时应用程序重新启动。