2011-02-06 48 views
1

我目前有一个列表视图是从Web服务器创建时填充的。我希望它定期轮询数据库以获取更新,或者允许php脚本更新它。我宁愿它由数据库更新,而不是轮询。永不结束后台线程?

只要投票去,我知道我可以实现一个服务或一个asyncthread。我也找到了timertask类。

对于AsyncThread:我可以让这个循环连续吗?我是否会拨打

的.start方法对于TimerTask:这是否比异步线程或服务效率低?

我也需要在线程内创建TimerTask吗?还是会创建自己的线程?

+0

您是否了解web服务器的工作原理?它们不旨在从服务器更新客户端。有些项目可以这样做,但web服务器被设计为可以进行轮询。 – jcolebrand 2011-02-06 05:25:06

+0

是的,我了解尽可能多,并已接受,我将不得不轮询,但要确定,因为这是一个我没有经验 – 2011-02-06 08:58:52

回答

1

试图将服务器变成客户端,将客户端变成服务器,就像试图通过错误的孔口进食。它与原始设计的本质相抵触。

首先,你不能依靠你的应用程序连续地,而不是在电话上。手机应用程序的优先级较低。手机上的应用有限的能量可以使用。手机上的应用程序也不总是会连接到互联网。

因此,一方面,您希望在自己的线程上使用服务(如果您愿意,可以使用AsyncTask)。您的服务将需要自己的线程,因此它不会阻止UI线程等待响应。你需要使用AlarmManager根据需要唤醒或终止你的服务(因为你的服务必然会被杀死几次,而不是自己的错误)。