2014-01-12 210 views
0

開始我有一個片段類,在單擊列表項時啓動另一個活動。刷新活動,活動從片段

Intent in = new Intent(getActivity(),SResponses.class); 
    startActivity(in); 

此活動有一個處理程序,它在幾秒鐘後刷新活動。

new Handler().postDelayed(new Runnable() { 
        @Override 
        public void run() { 
         finish(); 
         startActivity(getIntent()); 
        } 
       }, 4000);  

然而,一旦這個類被打開它不斷刷新,甚至所有的時間,當我按下後退按鈕它不回去,並不斷刷新一次,並again.I只想運行此此活動處於活動狀態時處理程序

+0

爲什麼要通過銷燬當前活動並創建新的數據來「刷新」您的數據? – Hellboy

+0

實際上我的數據庫正在更新時間和值在列表中更新,我想在特定時間後用新值更新列表。 – user3091531

+0

我怎麼知道數據庫何時會更新? – user3091531

回答

1

這對我來說是「刷新」活動一樣,但你可以嘗試這樣的事情很奇怪的做法:

1)聲明類成員:

private Handler handler; 
private Runnable runnable = new Runnable() { 
    @Override 
    public void run() { 
        finish(); 
        startActivity(getIntent()); 
    } 
} 

2)設置處理程序:

handler = new Handler(); 
handler.postDelayed(runnable, 4000); 

3)和onStop()onDestroy()調用`handler.removeCallbacks(runnable);

+0

感謝兄弟:) .................... – user3091531

+0

繼續做goooood – user3091531

+0

謝謝,但我強烈建議您尋找更好的解決方案來刷新活動。 CursorAdapter和ContentProvider應該是一個很好的靈魂 – Hellboy