0
我需要每秒自動刷新顯示在我的活動中的數據,我已經使用了runnable,timer等。這些工作完美,但幾秒後界面很慢,有時不響應。我已閱讀IntentService
,但我認爲在IntentService
中使用無限循環並不是一個好主意。有什麼我失蹤,請幫助。如何自動刷新顯示在我的Android活動中的數據每秒
我需要每秒自動刷新顯示在我的活動中的數據,我已經使用了runnable,timer等。這些工作完美,但幾秒後界面很慢,有時不響應。我已閱讀IntentService
,但我認爲在IntentService
中使用無限循環並不是一個好主意。有什麼我失蹤,請幫助。如何自動刷新顯示在我的Android活動中的數據每秒
也許這可以幫助:
private class WaitTimer extends TimerTask {
@Override
public void run() {
//every 5 seconds
if(millis % 5 == 0) {
//Do your magic here
}
millis+=1
}
}
然後在的onCreate()
millis = 0;
timer = new Timer();
timer.schedule(new WaitTimer(), 0, 1000);
我會做這樣的事情。
private Handler mRepeatHandler;
private Runnable mRepeatRunnable;
private final static int UPDATE_INTERVAL = 5000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mRepeatHandler = new Handler();
mRepeatRunnable = new Runnable() {
@Override
public void run() {
//Do something awesome
mRepeatHandler.postDelayed(mRepeatRunnable, UPDATE_INTERVAL);
};
mRepeatHandler.postDelayed(mRepeatRunnable, UPDATE_INTERVAL);
}
@Override
protected void onDestroy() {
super.onDestroy();
mRepeatHandler.removeCallbacks(mRepeatRunnable);
}
如果在屏幕上重新加載數據的過程花費超過一秒鐘?它是CPU密集型的嗎?如果不是,您應該可以輕鬆地使用處理程序來發布延遲的可運行內容,而不會影響UI性能。 –
我檢查並發現,重新加載數據只需一秒鐘,並且進程沒有超過5%的CPU,但ui有時並沒有響應。 –