Я хочу обновить интерфейс пользователя по таймеру.Это совсем не проблема, но когда дело доходит до Gallery / ListViews, это становится сложным.У меня есть галерея с пользовательским BaseAdapter.Мне нужен счетчик для каждого элемента (галереи) (каждый элемент рассчитывается по-разному в зависимости от данных элементов).Этот счетчик должен работать вне основного потока.Кроме того, я не хочу запускать 10 потоков для 10 элементов галереи, когда виден только один элемент.Нетрудно определить обработчик и запустить поток (счет) в методе getView () адаптера, когда элемент / представление становится видимым.Я могу думать о чем-то вроде следующего кода:
public class MyAdapter extends BaseAdapter {</p>
<pre><code> static class ViewHolder {
//...
public Handler myHandler;
}
public View getView(int position, View convertView, ViewGroup parent) {
//...
// getView() gets called indefinite so first remove callback because it may be added already
holder.myHandler.removeCallbacks(myRunnable);
holder.myHandler.postDelayed(myRunnable, 0);
//...
}
}
Проблема состоит в том, чтобы удалить обратный вызов для представления, которое больше не видно, потому чтов getView () меня замечают, когда вид становится видимым, но я понятия не имею, как получить вид (и, следовательно, держатель и его обработчик), который стал невидимым для удаления обратного вызова.
Есть (нет)) подход, чтобы решить это?