android - 每 X 秒触发一次 Intent 服务,性能有何不同?
问题描述
我知道有很多方法可以每隔 x 秒调用一个函数或安排一个作业。我的问题是最适合我的问题的解决方案是什么?
我有一个繁重的任务,我想在后台线程中运行(数据库查询,进行 HTTP 调用)。
为此,我使用了一个,IntentService
因为它的onHandleIntent
函数在后台工作线程中运行,并且启动的服务已排队。
队列对我来说并不重要,因为startService()
只会从一个地方调用。
现在,我想经常启动这项服务,大约 10-15 秒。
这是我的旧解决方案:
class MyService extends IntentService {
@Override
protected void onHandleIntent(Intent intent) {
mutex = new Object();
while(isServiceRunning) {
doTheBigJob();
syncrhonized (mutex) {
mutex.wait(15000);
}
}
}
}
我认为这是不好的做法。
现在我的 Intent 服务只包含doTheBigJob()
. 但是我应该如何安排我的startService()
通话时间,让这种情况永远每 15 秒发生一次。什么是最优化的方式?
这是一个 KIOSK 应用程序,因此它始终位于前台,用户无法逃脱。
解决方案
推荐阅读
- arrays - VBA将一个数组添加到另一个数组
- machine-learning - sklearn LinearSVC 是 SVM 还是 SVC?
- css - 是否有可以根据内容隐藏元素的 CSS 选择器?
- html - 响应式 SVG 背景图像
- python - 使用 Python 获取财务数据
- python-3.x - 测试用例未使用 python 的单元测试模块运行
- discord - 如何使用 discor.js 从 discord bot 向特定用户发送消息
- php - ListenWhisper 没有收到客户端事件 (Larave-echo & Vue.jsl)
- express - 如何通过 Gitlab 将 Nuxt.js(带有 Express.js 的 SSR)部署到 Vercel?
- python - 当我写这篇文章时,我没有看到任何错误,但它打开的是 jpg 文件而不是 mp3 文件