为什么在复制/剪切/粘贴文件/文件夹后需要重新启动?

时间:2014-02-12 04:04:59

标签: java android performance

我正在开发一个小型文件管理器,以便在Android上获得一些东西并且我已经切割/复制/粘贴操作。它似乎工作正常,但我遇到了粘贴事物的问题。在我的应用程序上它显示正常,但为了让其他应用程序识别它,它需要我重新启动手机。例如,如果我将图像从下载文件夹剪切/粘贴到DCIM文件夹,则除非重新启动整个手机,否则图库应用程序不会显示该图像。我正在使用一个逐字节获取数据的算法。它效率极低,但我不完全确定如何实现更快的算法。

感谢。

1 个答案:

答案 0 :(得分:3)

实际上你不需要重启我们的手机。复制图像并将其粘贴到其他位置时,新复制的媒体文件不会添加到android的{​​{1}}。因此,您应该使用课程MediaScannerConnection

扫描您的数据

ContentResolver

粘贴文件时,文件是否正确?

根据您的意愿修改,这很好用

Eg:

<强>更新

回调应该像

要么你可以在你的类中实现private void scanImage(File targetLocation) { // Scans the media to load images String mimetype = Utility.getMimeType(targetLocation.getAbsolutePath()); if(mimetype.contains("image")) { MediaScannerConnection.scanFile(context, new String[] { targetLocation.getPath() }, new String[] { "image/jpeg" }, this); } } 并添加未实现的方法,那么你可以将OnScanCompletedListener作为回调传递或者你可以使用

this

并将OnScanCompletedListener listener = new OnScanCompletedListener() { @Override public void onScanCompleted(String path, Uri uri) { // you will get the callback here } }; 作为回调

传递