我有一个应用程序在后台使用服务来执行一些上传/下载操作。这些操作可能需要一些时间,具体取决于用户选择(文件的数量和大小)。
虽然使用我的设备(nexus s)和测试模拟器,一切都按计划进行,但我收到用户的报告,称在选择上传/下载大数据时操作有时会卡住。
该操作是使用在后台服务中运行的线程完成的。我的猜测是操作系统有时会杀死内存不足的设备上的线程和/或服务。
在服务 onStartCommand() 函数中,我提升了将执行操作的线程(要处理的数据在意图内),然后我返回 START_NOT_STICKY。在我使用 startService(i) 的活动中,没有完成绑定。
如何防止这种情况?如何确保系统不会杀死我的服务或线程?