1

Как я могу постоянно обновлять элементы списка в виде списка в Android?Постоянно обновлять список Элементы

У меня есть активность, которая отслеживает ход текущих транзакций. Когда я загружаю представление прогресса, он захватывает состояние в момент создания, но, естественно, я хочу его обновить.

Я пробовал следовать this answer, но это создает кодовый блок, который выполняется постоянно, даже если деятельность не находится в фокусе.

Возможно, есть какой-то динамический адаптер вида, о котором я не знаю?

ответ

1

Связанный ответ в основном в порядке, просто настроить его немного, чтобы предотвратить это работает после onPause():

private boolean mRunning; 

Handler mHandler = new Handler(); 

Runnable mUpdater = new Runnable() { 
    @Override 
    public void run() { 
     // check if still in focus 
     if (!mRunning) return; 

     // upadte your list view 

     // schedule next run 
     mHandler.postDelayed(this, 500); // set time here to refresh views 
    } 
}; 

@Override 
protected void onResume() { 
    super.onResume(); 
    mRunning = true; 
    // start first run by hand 
    mHandler.post(mUpdater); 
} 

@Override 
protected void onPause() { 
    super.onPause(); 
    mRunning= false; 
} 
+0

Хорошо большой .. я просто одно сомнение: это не значит, что будет 'run' метод постоянно называется и возвращается из? – jsj

+1

Нет, это снова запускается, если вы вызываете какой-то метод Handler.post(). Возврат в 'run()' приведет к тому, что последующее выполнение не будет запланировано, потому что вы возвращаете ** перед ** 'mHandler.postDelayed()'. – flx

+0

Быстрый вопрос: где я могу это поставить? Является ли он внутри ListActivity/ListFragment или адаптера? – adrianmc

Смежные вопросы