如何创建一个AsyncTask
,它会在固定的时间间隔后继续运行。
例如。每隔5分钟从服务器获取数据,并将通知提供给调用者线程,表明它已收到数据。我在论坛上搜索但找不到多少。到目前为止我收集的是
1)UI线程将调用AsyncTask
2)onPrExecute
用于执行
3)OnPostExecute
执行
我不需要向用户显示任何进度更新。此外,应用程序关闭时,任务将被销毁。任何教程都有用吗
答案 0 :(得分:2)
正如其他人在评论中所建议的那样。所以让我详细说明一下。
不要使用AsyncTask。 INSTEAD仅适用于IntentService。
直接在intentService上启动数据提取请求,作为使用工作线程工作,并在最后调用您维护的接口对象列表的更新委托。
制作允许活动注册和取消注册以监听这些更新的方法。
答案 1 :(得分:0)
您可以使用Timer.scheduleAtFixedRate安排AsyncTask
以固定费率重复。
答案 2 :(得分:0)
试试这个..
- 更好地利用Service
一次又一次地完成这项工作。
- 现在您可以使用绑定或未绑定 Service
。如果您希望将Service绑定到Activity,则使用Bound Service,否则使用UnBound Service。
- 如果使用IntentService
会更好,那么不需要任务继续运行,但会在一定时间后运行。
请参阅此链接:
http://mobile.tutsplus.com/tutorials/android/android-fundamentals-intentservice-basics/
答案 3 :(得分:0)
我写了一个定期触发AsyncTask
s的应用,除非它们在应用关闭时仍然存在。无论如何,这就是我必须做的事情:
PendingIntent
(通过getBroadcast()
),其中包含一个包含操作的Intent
。PendingIntent
提供给系统的AlarmManager
并设置间隔。BroadcastReceiver
以捕获提供给Intent
的操作字符串。 1。onReceive()
的{{1}}方法中,点击BroadcastReceiver
。