0
私は、デバイス上のイメージを読み込むクラスを持っています。これが私の活動の一例です:ContentObserver
MediaStore.Images.Media.EXTERNAL_CONTENT_URI
の変化を見つけた場合ので、もちろんLoaderCallbacksを使用するときにProgressiDialogを表示する方法
public class MediaListActivity extends AppCompatActivity implements LoaderCallbacks<Cursor> {
private ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
...
progressDialog.show();
getSupportLoaderManager().initLoader(1, null, this);
}
@Override
public android.support.v4.content.Loader<Cursor> onCreateLoader(int id, Bundle args) {
CursorLoader cursorLoader = new CursorLoader(this, MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null, null, null);
return cursorLoader;
}
@Override
public void onLoadFinished(android.support.v4.content.Loader<Cursor> loader, Cursor cursor) {
progressDialog.dismiss();
}
}
が、私は、onCreate()
メソッド内progressDialog.show()
を置くことができないとCursor
はprogressDialog.show()
が呼び出されることはありません方法を再ロードされます。
どうすればこの問題を解決できますか?
はonLoaderReset()コールバックでダイアログを表示してみ事前
onCreateLoaderメソッド内に進捗ダイアログを表示できます。 onLoaderResetメソッドを使用して、メディアコンテンツの変更を処理する必要があります。ここでダイアログを閉じることができます。 – Nas
onCreateLoaderは、ローダの作成時に一度だけ呼び出されます。新しいロードが実行されるたびに呼び出されることはありません。 MediaStore.Images.Media.EXTERNAL_CONTENT_URI内に変更がある場合、onCreateLoaderは呼び出されません – MDP