我正在开发相机应用程序,可以成功地在app文件夹中录制视频。 顺便说一下,当我用Cursor从app文件夹中读取视频时,它不会刷新光标。 (这意味着当我使用应用程序录制视频时,无论何时我想通过应用程序观看视频,它都会显示旧视频。即使我关闭应用并重新打开应用程序,它也会显示旧视频。)
这是源代码。
public static List<MyVideo> getAppVideos(Context context) {
final String[] projection = { MediaStore.Video.Media.DATA, MediaStore.Video.Media.DATE_TAKEN, MediaStore.Video.Media.DURATION};
final String selection = MediaStore.Images.Media.BUCKET_ID + " = ?";
final String[] selectionArgs = { APP_VIDEO_BUCKET_ID };
final Cursor cursor = context.getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
projection,
selection,
selectionArgs,
null);
ArrayList<MyVideo> result = new ArrayList<MyVideo>(cursor.getCount());
if (cursor.moveToFirst()) {
final int dataColumn = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
final int dateColumn = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATE_TAKEN);
final int durationColumn = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATION);
do {
final String data = cursor.getString(dataColumn);
final String createdDate = cursor.getString(dateColumn);
final String durationTime = cursor.getString(durationColumn);
result.add(new MyVideo(data, DateUtils.convertToSeconds(durationTime), "^ " + DateUtils.getDateFromMilliSeconds(Long.parseLong(createdDate), "MMM dd, yyyy")));
} while (cursor.moveToNext());
}
cursor.close();
return result;
}
有人可以建议解决方案吗?
答案 0 :(得分:1)
如果CursorDemo扩展了CursorAdapter,那么你必须使用adapter.swapCursor(cursor_update);
那应该将旧光标换成新光标并重新加载数据。使用 swapCursor ,因为旧光标未关闭。