如何执行更新UI视图Android的后台作业

时间:2011-03-28 20:59:07

标签: android multithreading user-interface background

在我的Android应用程序中,我有一个带有视图的活动。

例如,在活动开始时或创建主布局时,我想开始一个后台作业,每5秒钟从主布局更新UI视图。

所以,我现在的策略是在创建主布局期间使用派生自View的类的runOnUiThread方法创建Runnable。

线程正确启动但在线程中我想等待5秒等待再次更新UI视图。我的问题是当我使用Thread.sleep时,UI被阻止。

我猜Thread.sleep()会阻止整个用户界面,但我不知道如何解决这个问题。

所以我的问题如下:什么是实现我想要的最佳解决方案(也许不使用睡眠)?

3 个答案:

答案 0 :(得分:2)

以下链接可以解答您的所有疑问:

Android Painless Threading

答案 1 :(得分:1)

您可以使用Timer来安排重复TimerTask。每次要更新UI时,都可以发布到先前在UI线程中创建的Handler

请记住cancel Timer onPause Timer并在onResume中创建新的{{1}}。

答案 2 :(得分:0)

还要考虑将AsyncTask与定时器一起使用。您不必以这种方式担心处理程序