我有一个主要活动的应用。我使用绑定器将数据添加到服务的列表中。同时,我启动在后台运行的服务。当我关闭并重新启动应用程序时,我的服务中的数据列表将被销毁。为什么会这样?
答案 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)
通常情况下,您的服务不会每次都被销毁,但如果其他应用程序需要更多资源且设备没有,操作系统可以阻止您使用该应用程序。