我的问题一般是 - 如何让后台服务在每个“INTERVAL”中运行而不收到 ANR 消息(尝试制作从 alarmManager 调用的服务,该服务启动一个线程来完成其工作)?谢谢你的帮助!
更详细:
我正在制作一个类似于 DropBox 的应用程序 - 使本地文件夹与其他 Android 手机共享。
此应用程序应在后台运行。
它还应该以一定的时间间隔运行,以检查是否在本地目录中创建了任何新数据,以便将其上传到某个服务器。
我的应用程序通常在 PsudoCode 中执行下一个序列:
1) AlarmManager.setInexactRepeating(MySerVice)
2) (when the service is being called) DecideWhichFileToUploadOrDownload()
3) UploadNewFiles() DownloadNewFiles()
我知道问题出在第 3 阶段,在上传/下载超过 10 秒后,我收到 ANR 消息(或我的应用程序被杀死),如果上传/下载时间短于 10 秒,则一切正常. 我试图创建一个可以进行上传/下载的线程,但是一旦服务完成,Android 就会杀死我的线程。