我正在处理警报,它大部分时间都有效,但有时它不起作用。然后我发现它会一直工作,直到您的应用程序没有被杀死或设备已重新启动。我没有重新启动我的设备,所以唯一的原因可能是我的应用程序被杀死了。所以我的问题是基于Android本身杀死我的应用程序的条件和标准。
3 回答
根据文档
Android 可能会决定在某个时候关闭某个进程/应用程序,此时内存不足且其他进程需要更直接地为用户服务。在被杀死的进程中运行的应用程序组件因此被破坏。当这些组件再次有工作要做时,将再次为这些组件启动一个流程。
在决定要杀死哪些进程时,Android 系统会权衡它们对用户的相对重要性。例如,与托管可见活动的流程相比,它更容易关闭托管在屏幕上不再可见的活动的流程。因此,是否终止进程的决定取决于在该进程中运行的组件的状态。
下面的链接将帮助您理解这一点:
http://developer.android.com/guide/components/processes-and-threads.html
你可以让你的服务在前台运行,这样它就不会被系统杀死。音乐播放器就是这样一个例子。
简单的答案是“内存不足”......
Android 可能会决定在某个时候关闭某个进程,当内存不足且其他更直接为用户服务的进程需要时。在被杀死的进程中运行的应用程序组件因此被破坏。当这些组件再次有工作要做时,将再次为这些组件启动一个流程。
在决定要杀死哪些进程时,Android 系统会权衡它们对用户的相对重要性。例如,与托管可见活动的流程相比,它更容易关闭托管在屏幕上不再可见的活动的流程。因此,是否终止进程的决定取决于在该进程中运行的组件的状态。下面讨论用于决定终止哪些进程的规则。
阅读有关进程和线程的更多信息并阅读如何在应用程序终止后保存警报?