- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从 Fragment
中异步下载文件,并希望在下载完成时调用 MediaScannerConnection.scanFile()
。如果我坐下来等待下载完成而不离开我的 Fragment(或其托管 Activity ),我就能得到想要的结果。我面临的问题是 MediaScannerConnection.scanFile()
需要上下文,我不想限制用户停留在 Fragment
/Activity
只是为了让上下文不为空。
如何在后台使用 MediaScannerConnection.scanFile()
以便我可以扫描文件并在扫描完成时显示 Toast
,同时仍在导航在我的应用程序的其他部分(甚至跳出我的应用程序)?
这就是我目前正在扫描的方式(使用上下文):
public static void mediaScanFile(Context context, String path) {
MediaScannerConnection.scanFile(context,
new String[]{path}, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.d("Tag", "Scan finished. You can view the image in the gallery now.");
}
});
}
最佳答案
首先,从可能很快就会被破坏的Fragment
下载文件不是一个好主意。您应该使用前台服务。
如果您仍然想坚持使用 fragment ,在您的情况下,您可以使用应用程序上下文。
在开始下载之前,将应用程序上下文的引用存储为 fragment 中的一个字段。
Context appContext;
// Inside onCreateView
appContext = getContext().getApplicationContext();
然后您可以使用应用程序上下文来扫描媒体。
这不会导致内存泄漏,因为应用程序上下文是单个共享实例,并且在应用程序被终止之前不会被销毁。
关于java - 在 fragment 中使用 MediaScannerConnection.scanFile()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52637145/
我正在尝试将 SD 卡上数据目录中的文件添加到媒体存储内容提供程序。然而,我担心我手上可能有一个java教育问题。 MediaScannerConnectionClient 据称是 MediaScan
我设置为拍照,保存,然后上传图片。我的问题是 MediaScannerConnection 在尝试上传图片之前没有完成。我需要一些不同类型的返回声明吗?我怎样才能让它等待? 编辑以包含完整代码。 pu
我正在尝试使用命令 File.delete() 从内部存储器 (ASUS TF101) 中删除一些文件或目录。但是,使用 Android 文件资源管理器我可以看到文件是如何被删除的,但是使用 Wind
当我运行以下代码行时: MediaScannerConnection scanner = new MediaScannerConnection( this, null ); scanner.c
我应该使用 MediaScannerConnection.scanFile 方法以外的方法来刷新图库吗? 保存新的 jpg 后,我运行媒体扫描器来刷新图库应用程序,就像这样 Media
我正在将图像添加到 SDCARD 上的文件夹中。由于图像和我的文件夹在图库中不会立即可见试图让 MediaScannerConnection 更新并显示图库中的文件夹/图像。这对我来说不是很好,因为画
我正在尝试将文件保存为 Canvas 的 PNG,用户可以在其中绘制一些东西,然后调用 Intent.ACTION_SEND以便用户可以与其他应用程序共享它的绘图。 该代码能够毫无问题地保存文件,但是
我有一些图片存储在外部 SD 卡中,我想在 GridView 中显示它们的缩略图。我知道媒体扫描仪已经创建了缩略图,因为我可以使用标准图库应用程序浏览我的图片文件夹,但我不知道这些缩略图位于何处,所以
我正在开发一个应用程序,在该应用程序中我将图像保存到一个目录,但在我重新启动手机之前图像不会显示在图库中。 这是我的代码 fragment public class SaveTask extends
当我尝试将图像保存到外部目录时,MediaScannerConnection 成功扫描了该目录,但图像未显示在图库中。 public void saveItem() { if (sel
我想从 MediaStore 收集一些信息。有时 .nomedia 文件会导致文件未被扫描,因此我使用显式调用来确保文件已被扫描! 所以我打电话 MediaScannerConnection.scan
我正在从 Fragment 中异步下载文件,并希望在下载完成时调用 MediaScannerConnection.scanFile()。如果我坐下来等待下载完成而不离开我的 Fragment(或其托管
我正在使用 API Demos 中的 MediaScannerConnection 示例代码 我使用的 fragment 是: MediaScannerConnection.scanFile(
我的 android 应用程序将一堆 csv 文件和 jpg 文件写入设备的内部存储器。我正在使用 MediaScannerConnection.scanFile() 使文件可以从我的 windows
createNewFile() 方法返回 true 并显示文件在我手机上的位置。该文件显示在我手机的文件管理器中,但未显示在资源管理器中。 基本上我在 File 对象上调用 createNewFile
由应用程序触发的重命名文件等更改仅在 Android 设备重启后出现在 USB-MTP 接口(interface)上或在您像这样在 MediaScanner 上注册新文件后(参见 Trigger me
我是一名优秀的程序员,十分优秀!