Android でチャット リストビューを実装しています。アクティビティでスクロール リスナーを使用してチャット データを更新しています。
以下のコードを使用して、スクロールのアイドル状態を確認し、リストビューを更新しています。
public void onScrollStateChanged(AbsListView view, int scrollState) {
scrolled=true;
if (scrollState == SCROLL_STATE_IDLE) {
if (listview.getLastVisiblePosition() >= listview.getCount()-1) {
if(task != null && (task.getStatus() == AsyncTask.Status.FINISHED)){
task = new MessageTask();
task.execute(new String[]{URL});
adapter.notifyDataSetChanged();
}
}
}
}
私の問題は、スクロールしたときにのみリストビューが更新されることです。それ以外の場合、リストビューは更新されません。
そのため、タイマーを使用して asynctask を定期的に呼び出すようにスケジュールしています。
Androidでリストビューをスクロールするときにタイマーを停止してタイマーを再開する方法。またはタイマーアプローチは正しいですか?他に方法があればアドバイスお願いします。