为什么我的服务中的列表被销毁?

时间:2014-06-23 12:30:25

标签: android android-service

我有一个主要活动的应用。我使用绑定器将数据添加到服务的列表中。同时,我启动在后台运行的服务。当我关闭并重新启动应用程序时,我的服务中的数据列表将被销毁。为什么会这样?

3 个答案:

答案 0 :(得分:1)

也许你的服务被杀了,如果你使用START_STICKY,它只是在没有任何参数的情况下重启(作为独立服务)。我认为你应该以某种方式坚持使用参数调用服务的信息并保存它,例如到数据库。当服务完成处理您的数据时,删除该信息并允许再次调用它。

  

因为它处于启动状态,所以它将保证通话   创建新服务后的onStartCommand(Intent,int,int)   实例;如果没有任何待处理启动命令要传递   对于服务,将使用空的intent对象调用它,所以你   必须注意检查这一点。

答案 1 :(得分:0)

绑定到Service时,Service的生命周期取决于执行绑定的生命周期(在您的情况下为Activity)。因此,如果您在onPause / onStop中取消绑定,Service将被销毁。

如果您使用Service启动START_STICKY,那么它将一直存在,直到用户在代码中或Android OS停止(当它需要资源时。

(根据您的确需要),我建议将其存储在SharedPreferences中或以其他方式存储(例如SQLite DB)。当某些东西杀死或停止Service

时,防止丢失数据

答案 2 :(得分:0)

通常情况下,您的服务不会每次都被销毁,但如果其他应用程序需要更多资源且设备没有,操作系统可以阻止您使用该应用程序。