メインアクティビティにSimpleCursorAdapterとListがあります。データベースにアイテムが存在しない場合に表示されるようにemptyViewを設定しました。ただし、AsyncTaskは、onResumeに対して毎回新しいリストを作成します。そのため、リストが読み込まれる前に、空のビュー画面が数秒間表示されます。データクエリは別のスレッドで実行する必要があるため、AsyncTaskが必要です。しかし、emptyViewが毎回ポップアップするのは好きではありません。以下にAsyncTaskメソッドとonResumeメソッドを添付しました。両方ともコンパイル中です。どうすればいいですか?
class GetItems extends AsyncTask<Object, Void, Cursor> {
DbHelper dbHelper = new DbHelper (MainActivity.this);
@Override
protected Cursor doInBackground(Object... params) {
dbHelper.open();
return dbHelper.getAllItems();
}
@Override
protected void onPostExecute(Cursor result) {
adapter.changeCursor(result);
dbHelper.close();
}
}
@Override
protected void onResume() {
super.onResume();
new GetItems().execute((Object[]) null);
}