如何创建一个AsyncTask
,它在固定的时间间隔后继续运行。异步重复计划任务
例如,每隔5分钟从服务器获取数据,并通知通知以向调用者线程收到数据。我在论坛上搜索,但找不到多少。什么到目前为止,我已经收集是
1)UI线程执行
后打电话AsyncTask
2)UI线程访问onPrExecute
执行
3)OnPostExecute
的UI线程访问之前,我不需要向用户显示任何进度更新。此外,该任务将在应用程序关闭时被销毁。任何教程,这将有帮助
如何创建一个AsyncTask
,它在固定的时间间隔后继续运行。异步重复计划任务
例如,每隔5分钟从服务器获取数据,并通知通知以向调用者线程收到数据。我在论坛上搜索,但找不到多少。什么到目前为止,我已经收集是
1)UI线程执行
后打电话AsyncTask
2)UI线程访问onPrExecute
执行
3)OnPostExecute
的UI线程访问之前,我不需要向用户显示任何进度更新。此外,该任务将在应用程序关闭时被销毁。任何教程,这将有帮助
其他建议在评论。所以让我详细说明一下。
请勿使用AsyncTask。 INSTEAD只适用于IntentService。
直接在intentService上启动数据提取请求,作为使用工作线程工作,并在您维护的接口对象列表的最后调用更新代理中启动。
制定方法让活动注册并取消注册以监听这些更新。
您可以安排在AsyncTask
使用Timer.scheduleAtFixedRate固定利率重复。
你知道Asyntask在UIThread上运行吗? –
@hotveryspicy,那是不正确的。您需要调用execute()方法使其在自己的线程中运行,但您只能从循环线程(通常是主线程)调用此方法。 – Phil
那就是我在运行Asyntask时所说的,如果用户与UI进行任何交互,那么用户会感觉到闪烁(这很糟糕)。 –
试试这个..
-更好地利用Service
一次又一次地做这项工作。
- 现在,您可以使用绑定或取消绑定Service
。如果您希望服务绑定到活动,则使用绑定服务否则使用解除绑定服务。
-如果甚至会更好使用IntentService
,因为在这里你不需要任务继续运行,但一定时间后运行。
请参阅此链接:
http://mobile.tutsplus.com/tutorials/android/android-fundamentals-intentservice-basics/
我写了定期时间间隔触发AsyncTask
S,不同之处在于他们坚持,即使当应用程序被关闭的应用程序。无论如何,这是我必须做的:
PendingIntent
(通过getBroadcast()
),里面有包含一个动作一个Intent
。PendingIntent
提供给系统的AlarmManager
并设置间隔。BroadcastReceiver
以捕获提供给号码为Intent
的操作字符串。 1.BroadcastReceiver
的onReceive()
方法中,触发AsyncTask
。
我宁愿你使用服务。 –
使用服务与警报服务经理 –
@hotveryspicy:在这种情况下不会IntentService会更好?因为我不需要处理多个请求。也有任何教程 – Ankuj