android – 我想阻止我的音乐播放器应用程序每次应用程序启动时扫描目录中的音频文件.我怎样才能做到这一点?

我想阻止我的音乐播放器应用程序在每次应用程序启动时扫描目录中的音频文件.我怎样才能做到这一点?

我一直在使用以下代码来扫描音频文件.

public void getSongList() {

  ContentResolver contentResolver=getContentResolver();
  Uri musicUri=android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
  Cursor musicCursor = contentResolver.query(musicUri,null,null);
  if(musicCursor!=null && musicCursor.movetoFirst()) {
    //get columns
    int titleColumn = musicCursor.getColumnIndex
                (android.provider.MediaStore.Audio.Media.TITLE);
    int idColumn = musicCursor.getColumnIndex
                (android.provider.MediaStore.Audio.Media._ID);
    int artistColumn = musicCursor.getColumnIndex
                (android.provider.MediaStore.Audio.Media.ARTIST);

    int albumIDColumn = musicCursor.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID);

    //add songs to list
    do {
       long thisId = musicCursor.getLong(idColumn);
       String thisTitle = musicCursor.getString(titleColumn);
       String thisArtist = musicCursor.getString(artistColumn);
       long thisAlbumID=musicCursor.getLong(albumIDColumn);
       Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart");
       Bitmap albumartBitMap=null;
       Uri albumartUri = ContentUris.withAppendedId(sArtworkUri,thisAlbumID);
       try {
         albumartBitMap = MediaStore.Images.Media.getBitmap(this.getContentResolver(),albumartUri);
         Matrix m = new Matrix();
         m.setRectToRect(new RectF(0,albumartBitMap.getWidth(),albumartBitMap.getHeight()),new RectF(0,300,300),Matrix.ScaletoFit.CENTER);
         albumartBitMap = Bitmap.createBitmap(albumartBitMap,albumartBitMap.getHeight(),m,true);
       } catch (IOException e) {
         e.printstacktrace();
       }
       songList.add(new Song(thisId,thisTitle,thisArtist,albumartBitMap));
    }
    while (musicCursor.movetoNext());
  }
}

我希望应用程序只在有新文件时进行扫描.因为如果我每次都扫描整张SD卡,那么启动应用程序需要花费太多时间.请帮帮我

解决方法

无需将所有歌曲保留在本地应用列表中.

显示mp3list,您可以使用带限制的内容提供者光标列表适配器查询(逐页滚动查询)

要直接搜索使用contentprovider查询方法.

只在本地数据库上保留一个指向mp3 uri的播放列表.

链接可能会帮助您:
How to update listview whose data was queried from database through SimpleCursorAdapter?

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...