getContext().sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(file)));
MediaScannerConnection.scanFile(getContext().getApplicationContext(), new String[]{mCurrentSavePhotoPath}, null, new MediaScannerConnection.OnScanCompletedListener() {測試結果 確實是比發廣播快一些:
@Override
public void onScanCompleted(String path, Uri uri) {
LogUtil.e(TAG, "onScanCompleted path = " + path);
}
});
final String[] columns = {MediaStore.Images.Media.BUCKET_ID, MediaStore.Images.Media._ID, MediaStore.Images.Media.BUCKET_DISPLAY_NAME, MediaStore.Images.Media.DATA, MediaStore.Images.Media.WIDTH, MediaStore.Images.Media.HEIGHT};2) 使用ContentResolver 查詢
activity.getLoaderManager().initLoader(0, null, new LoaderManager.LoaderCallbacks<Cursor>() {
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
return new CursorLoader(getContext(), MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, "", null, MediaStore.Images.Media.DATE_MODIFIED + " DESC ");
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cur) {
handleImageData(cur);
getMvpView().loadImgOver(mAlbumModels);
}
@Override
public void onLoaderReset(Loader<Cursor> loader) {
}
});
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
ContentResolver cr = getContext().getContentResolver();
final String[] columns = {MediaStore.Images.Media.BUCKET_ID, MediaStore.Images.Media._ID, MediaStore.Images.Media.BUCKET_DISPLAY_NAME, MediaStore.Images.Media.DATA, MediaStore.Images.Media.WIDTH, MediaStore.Images.Media.HEIGHT};
Cursor cur = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, "", null, MediaStore.Images.Media.DATE_MODIFIED + " DESC ");
handleImageData(cur);
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
getMvpView().loadImgOver(mAlbumModels);
}
}.execute();
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。