我目前有一个从Web服务器创建时填充的列表视图。我希望它能够定期轮询数据库以获取更新,或者允许php脚本更新它。我希望它由数据库更新,而不是轮询。
就轮询而言,我知道我可以实现服务或异步传输。我也找到了timertask类。
对于AsyncThread:我可以连续反复出现这种情况吗?我会从
中调用.start方法吗?对于TimerTask:这比asyncthread或服务效率低吗?
我还需要在线程内创建TimerTask吗?或者它会创建自己的线程吗?
答案 0 :(得分:1)
尝试将服务器转变为客户端,将客户端转变为服务器,就像试图通过错误的口吃掉一样。它与原始设计的本质作斗争。
首先,您不能依赖您的应用程序持续开启,而不是依赖电话。手机上的应用程序优先级较低。手机上的应用可以使用有限的能量。手机上的应用也并不总是连接到互联网。
因此,首先,您需要在自己的线程上使用服务(如果您愿意,可以使用AsyncTask)。您的服务将需要自己的线程,因此它不会阻止等待响应的UI线程。并且您将需要使用AlarmManager根据需要唤醒或终止您的服务(因为您的服务必然会被杀死几次,而不是自己的错误。)