一些用户报告丢失数据

Tom*_*Tom 13 android android-8.0-oreo

经过很长一段时间没有任何问题的应用程序运行 - 我得到一个报告表单用户说明保存的数据/照片时不时丢失.即它最初可能有效,但在稍后阶段,内容似乎消失了.我不能复制这个问题,所以我试图看看我是否可以"猜测"它.

首先要确保的是,我没有以最近Android版本不可行的方式保存数据.因此,这是我目前如何保存数据:

...

第一次尝试

File storage_files_dir_file = ctx.getExternalFilesDir("");
if (storage_files_dir_file.exists() == false) {
  return false;
}
// ... some code here prepping content
os = new FileOutputStream(path_final,true);
// ... some code here writing content
MediaScannerConnection.scanFile(ctx, new String[] {s}, null, null);
return true
Run Code Online (Sandbox Code Playgroud)

如果以上返回false切换到

File storage_files_dir_file = ctx.getFilesDir();
if (storage_files_dir_file.exists() == false) {
  return false;
}
// ... some code here prepping content
os = new FileOutputStream(path_final,true);
// ... some code here writing content
return true
Run Code Online (Sandbox Code Playgroud)

...

我的AndroidManifest.xml包括

  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Run Code Online (Sandbox Code Playgroud)

...

如果确实是文件问题,我会看到以下可能性:

  • 数据访问问题?
  • Android删除了保存的文件?
  • 第三方清洁应用程序?
  • 与在手机中使用SD卡的手机上运行相关吗?
  • 与在手机上安装了SD卡的手机上运行相关吗?
  • 手机完全没有空间运行?
  • 新增功能:Android 8用户意外删除数据和照片?
  • 新功能:Android 8 +的组合,例如外部应用数据或内部应用数据.

自从我编写上述代码以来已经有很长一段时间了 - 但我记得我的目标是将数据保存在尽可能永久且易于访问的位置以便于备份.

...

我对该应用程序的上次更新是在2017年3月.

更新

我想知道问题的罪魁祸首是Android 8 Oreo.我还没有访问过他自己,但是从文章看来现在可以一次删除应用程序中的照片了?+我看过截图,用户可以选择删除app-data和app-cache?如果这是原因:如果使用外部或内部应用程序数据存储有任何区别吗?还是要预防?

我的应用数据不受我在Android 6和Android 7上尝试的任何清理应用程序的影响,但与仅生产Android手机的所有不同公司相比,我只尝试了相当有限的数量.

...

有谁知道是否可以从他们可以发送的用户那里获取文件删除日志?也许这有助于诊断问题.

Gri*_*ram 3

老实说,你的问题听起来更像是任何类型的外部清理。

但无论如何,也许你想看看这个:自 Android 8 以来,我们也遇到了生成文件的问题,然后我发现了这篇文章: https://developer.android.com/reference/android/support/v4/内容/FileProvider.html

我们将文件访问更改为通过此类提供商完成,从那时起一切都很好。希望这有帮助,干杯格里斯