在后台线程内循环并不断更新 UI 时使用啥?
Posted
技术标签:
【中文标题】在后台线程内循环并不断更新 UI 时使用啥?【英文标题】:What to use when loop inside a background thread and keep updating UI?在后台线程内循环并不断更新 UI 时使用什么? 【发布时间】:2019-08-19 08:49:26 【问题描述】:我正在设计一个应用程序,它会在 t 秒后继续向服务器发送 JSON 数据,并在收到来自该服务器的响应时更新 Web 视图(发送成功后)。我希望这个后台工作永远运行,直到我退出应用程序。我应该在异步任务中使用循环吗?
我在 android 主页中读到 Async Task 应该用作一次性作业。
【问题讨论】:
使用计时器? developer.android.com/reference/java/util/Timer 【参考方案1】:使用 Runnable 和 Handler Class 来执行延迟后的函数
Handler handler = new Handler();
final int delay = 5000; //milliseconds
Runnable r=new Runnable()
public void run()
//Execute your asynctask here
;
handler.postDelayed(r, delay);
并在 Asynctask 的 onPostExecute 中更新 UI
【讨论】:
以上是关于在后台线程内循环并不断更新 UI 时使用啥?的主要内容,如果未能解决你的问题,请参考以下文章
请帮忙解释下Dispatcher.BeginInoke((Action)(()=>....;...;...;),null);啥意思?