2013-10-01 23 views
0

我正在使用Android的一個timeschedular安排在我app.I的AsyncTask能夠做出來好了,現在我想每一個到我使用這個代碼在Android中每次在可變持續時間之後安排一個asynctask?

ip=3000; 
    final Handler handler = new Handler(); 
    Timer timer = new Timer(); 
    TimerTask doAsynchronousTask = new TimerTask() {  
    @Override 
    public void run() { 
     handler.post(new Runnable() { 
      public void run() {  
       try { 
        play_duration=durat.get(vn); 
        ip=Integer.valueOf(play_duration); 
         ip=ShowImages.ip*1000; 
        Showtime s1 = new Showtime(); 
        s1.execute(what,f12,transi,play_duration); 
       } catch (Exception e) { 
        // TODO Auto-generated catch block 
       } 
      } 
     }); 
    } 
}; 
timer.schedule(doAsynchronousTask, 0,ip); 
改變運行任務之後,持續時間

我試圖改變每次在線程中的IP變量的值,但它不會改變,我不知道爲什麼我的線程總是在初始值爲3000毫秒後運行,有人可以建議一種方法來做到這一點..感謝

回答

0

更改UI上的組件使用runOnUiThread, 請參閱here,herehere做的事情上,你可以使用類似的背景 -

while(true) 
{ 
    runOnUiThread() { 
    do some stuf here; 
    } 
    Thread.Sleep(300); //<--- that should be nothing for the user and enough for the cpu 
} 

,如果您需要更精確的答案發布您的代碼和虐待指導您

+0

我顯示在的AsyncTask的高分辨率圖像線程,所以我將圖像轉換爲位圖,並在asynctask中顯示圖像,我認爲如果我將嘗試轉換主UI線程上的圖像,線程將變得無響應 – newkid

+0

那麼,有點改變的事情,你可以仍然使用這段代碼,但只是使用新的Asynctask()。execute()而不是runOnUiThread,並在doInBackground部分進行處理,無論如何,如果您不是爲平板電腦開發此應用程序, d考慮降低圖像以提高整體性能(我在一個應用程序上做了這些,但圖像沒有差異,性能顯着提高...) – crazyPixel

相關問題