java - 光标不刷新,直到我在 android 中重新启动设备

标签 java android video

我现在正在开发相机应用程序,可以在应用程序文件夹中成功录制视频。 顺便说一句,当我使用 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;


}

有人可以提出解决方案吗?

最佳答案

如果 CursorDemo 扩展了 CursorAdapter,那么你必须使用 adapter.swapCursor(cursor_update);

这应该将旧游标换成新游标并重新加载数据。使用 swapCursor,因为旧游标没有关闭。

关于java - 光标不刷新,直到我在 android 中重新启动设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41566412/

相关文章:

java - 为什么修改字符串数组元素时字符串没有改变

javascript - 实现Phonegap系统通知插件

android - ViewPager 中的嵌套 fragment 的高度和宽度为零

python - 从 Tumblr Api 获取视频 url

c# - RabbitMQ C# 客户端不与 Apache Qpid Java Broker 通信

java - java读取大文件时做 Action

java - 尝试通过 Eclipse 连接到 Sql 服务器(我认为找不到驱动程序)

android - Flutter 集成测试 - 如何在单个命令或单个文件中运行多个 Flutter 集成测试的测试用例

jquery - 如何让视频全屏

c++ - 使用 Qt5 从网络摄像头录制视频