我不确定,如果这是SO的正确问题,但由于它与编程相关,我把它放在这里。我正在为Android开发UI应用程序。该应用程序在外部存储器中创建一些文件。
我试图在我的电脑上备份这些文件。我插入设备,甚至找不到我的应用程序目录。不过,它在我手机的文件浏览器中。重新插拔并不起作用。它可以通过手动改变某些文件来解决,例如更改一些文件的名称,创建一个新目录。这刷新了整个事情。结果,我的计算机文件浏览器滞后了一段时间并显示文件。似乎文件被缓冲到PC中,我的应用程序没有权限在其IO之后订购一个rebuffer。
这不仅仅是一些显示问题,这些文件在我的应用程序工作后确实保持不变。我在我的应用程序中生成了不同的结果,因此它会覆盖旧文件。在设备的浏览器中,我看到了最新的文件,但在桌面上我得到了旧文件(即使将它们复制到硬盘后)。
我的桌面是Windows 7 64bit,我的手机是华为荣耀4X,我使用的是原装线。 我之前的手机是Galaxy Core Plus,我没有遇到这个问题(使用相同的应用程序)。我认为华为的rom可能是一个小小的车。在我通过桌面删除某些文件后,它仍显示在手机的文件管理器中。
有可能以某种方式刷新"这个连接是以编程方式进行的,所以它会在任何设备上显示最新结果吗?
答案 0 :(得分:0)
您可以根据需要实施此功能:
void MakeFileAvailable (Context context, File file)
{
MediaScannerConnection.scanFile(context,
new String[] { file.toString() }, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri){
Log.d(TAG, "File scanned" + path);
}
});
}
在上下文参数中,您必须设置活动的上下文。您可以使用函数'getBaseContext()'在活动类中获取上下文。