Android的asynchronous,处理程序或计时器?

每5秒钟,我想打电话给我的web服务,并获取文本(而不是图像),然后显示在我的ImageAdapter。 什么是最好的方法来完成这个?

Solutions Collecting From Web of "Android的asynchronous,处理程序或计时器?"

这取决于你是否要使用不同的线程。 您希望用户能够在图像下载时与UI线程上的应用程序进行交互吗? 如果是这样,那么我肯定会用一个小的ProgressBar ( style="@android:style/Widget.ProgressBar.Small" )来使用AsyncTask 。

如果你不关心线程,那么@inazaruk说。

编辑:事实是大多数现代的应用程序,从Web服务检索数据将使用AsyncTask与一个谨慎的小装载机在angular落,让用户知道它的更新。

编辑2:这是一个使用TimerTask每5秒运行一次的例子。 关键是runOnUiThread()可能有更好的方法将所有的元素联系在一起,但这准确地描绘了所有的部分。

 myTimer = new Timer(); myTimer.schedule(new TimerTask() { @Override public void run() { CallWebService(); } }, 0, 1000); } private void CallWebService() { this.runOnUiThread(fetchData); } private Runnable fetchData = new Runnable() { public void run() { asyncTask.execute(); } }; 
 final Handler handler = new Handler(); final Runnable r = new Runnable() { public void run() { callWebservice(); } }; handler.postDelayed(r, 5000); 

您应该在应用程序主线程中调用asynctask。 Asynctask不能在后台线程中调用。