在后台运行代码,然后在完成时更新UI

时间:2014-03-13 01:54:47

标签: android android-asynctask background-process timertask

在我的应用程序中,我需要定期从互联网上获取一些json数据,然后我想根据这些数据更新我的应用程序的UI。如何执行后台任务,然后在完成时更新UI?以下是我遇到的一些问题:

  • 使用服务/闹钟我无法将我的json发送回活动
  • 使用timer / timertask我无法更新UI,因为只有创建视图的线程才能更改它们
  • 使用asynctask工作正常,但我无法定期运行

我一直在我的活动中实现一个侦听器,它在获取json时触发。这似乎是一个直截了当的事情,我确信必须有一个解决方案!

2 个答案:

答案 0 :(得分:0)

使用服务/闹钟我无法将我的json发送回活动,使用binder在Service和Activity之间创建连接,或者广播以传输数据以触发ui更新

答案 1 :(得分:0)

虽然在活动和服务之间添加Binder会有效,但我最终还是按照resus提供的答案提供here。它使用Handler在将来由AsyncTask完成触发的方法中发布新任务。

这对我来说很有效,因为我已经建立了一个听众。