Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何被警告我的服务被杀?_Android_Android Service - Fatal编程技术网

Android 如何被警告我的服务被杀?

Android 如何被警告我的服务被杀?,android,android-service,Android,Android Service,我有一个应用程序,其服务带有returnservice.START\u STICKY命令。此服务记录用户位置,以便每小时将其批量发送到服务器。为了节省电池寿命,我没有将日志存储到磁盘,我只是将其保存在内存中。问题: 当用户杀死应用程序时,看起来服务也被杀死了,但服务的ondestroy没有被触发。那么,我如何知道何时关闭/销毁服务以将所有日志保存到磁盘,以便稍后检索 当系统重新启动服务时,由于启动了seam,因此不会调用onstart命令。这是正常的行为吗 参考这句话:我认为你在内存中存储数据是

我有一个应用程序,其服务带有return
service.START\u STICKY
命令。此服务记录用户位置,以便每小时将其批量发送到服务器。为了节省电池寿命,我没有将日志存储到磁盘,我只是将其保存在内存中。问题:

  • 当用户杀死应用程序时,看起来服务也被杀死了,但服务的ondestroy没有被触发。那么,我如何知道何时关闭/销毁服务以将所有日志保存到磁盘,以便稍后检索

  • 当系统重新启动服务时,由于启动了seam,因此不会调用onstart命令。这是正常的行为吗


  • 参考这句话:我认为你在内存中存储数据是在浪费电池。你为什么不每小时打一个AlarmManager来做你想做的事呢?@VladMatvienko:这正是我所做的,我每小时打一个AlarmManager来向服务器发送收集到的位置(网络使用了大量的baterry,所以我每小时批量发送位置)。但是我将这些位置存储在内存中(它不使用任何明显的内存),所以您一直在跟踪该位置?“我将这些位置存储在内存中”-不要这样做。堆空间只是一个缓存,因为您的进程可以在没有警告的情况下在任何时间点终止。将数据保存到磁盘。“那么,我如何知道何时关闭/销毁服务,以便将所有日志保存到磁盘,以便稍后检索?”--根据定义,这是不可能的。如果没有使用
    onDestroy()
    调用您,您的进程将被终止。