gpt4 book ai didi

Android ANR 消息由于长期持续的操作问题

转载 作者:行者123 更新时间:2023-11-29 18:19:28 25 4
gpt4 key购买 nike

我的一般问题是 - 如何让后台服务在每个“INTERVAL”运行而不收到 ANR 消息(尝试制作从 alarmManager 调用的服务,它启动一个线程来完成它的工作)?感谢您的帮助!

更具体:

我正在制作一个类似于 DropBox 的应用程序 - 使本地文件夹与其他 Android 手机共享。

此应用程序应在后台运行。

它还应该每隔一段时间运行一次,以检查是否在本地目录中创建了任何新数据,以便将其上传到某个服务器。

我的应用程序通常在 PsudoCode 中执行下一个序列:

1) AlarmManager.setInexactRepeating(MySerVice)
2) (when the service is being called) DecideWhichFileToUploadOrDownload()
3) UploadNewFiles() DownloadNewFiles()

我知道问题出在第 3 阶段,在上传/下载时间超过 10 秒后,如果上传/下载时间短于 10 秒,我会收到 ANR 消息(或者我的应用程序被终止)工作得很好。我试图创建一个线程来执行上传/下载,但是一旦服务完成,Android 就会终止我的线程。

最佳答案

how to make a background service run every "INTERVAL" and not get the ANR message

使用 IntentService,以便在后台线程上完成工作。

I tried to make a thread that will do the upload/download but once the Service is finished Android kill my Thread.

这就是您应该使用 IntentService 的原因,因为 Android 会为您管理后台线程和停止 Service。您只需通过 startService() 发送它的工作并在 onHandleIntent() 中完成工作。

关于Android ANR 消息由于长期持续的操作问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6318532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com