【发布时间】:2021-06-01 23:14:54
【问题描述】:
我的应用程序中有一个逻辑,因此当 OnStop() 发生时,我将文件保存到存储中。但是,如果文件很大并且我通过从“最近”选项卡中滑动来关闭应用程序,我的应用程序将在我的文件保存之前关闭。所以它打开文件然后应用程序死亡并且文件保持为空。 这是正常行为还是我手机上的任务杀手玩得太多了?我应该创建一个服务来保存文件吗?
示例代码:
@Override
public void onStop() {
try (FileWriter writer = new FileWriter(path)) {
if (veryLargeFile == null) {
return;
}
String s = veryLargeFile.toString();
Log.d(TAG, "this message is shown");
writer.write(s);
Log.d(TAG, "this message is not shown");
writer.flush();
} catch (IOException ex) {}
super.onStop();
}
示例 2:
@Override
public void onPause() {
try (FileWriter writer = new FileWriter(path)) {
if (veryLargeFile == null) {
return;
}
String s = veryLargeFile.toString();
Log.d(TAG, "this message is shown");
writer.write(s);
Log.d(TAG, "this message is not shown");
writer.flush();
} catch (Exception ex) {
Log.d(TAG, "this message is not shown");
}
super.onPause();
}
【问题讨论】:
-
如果我把我的保存代码放在 onPause() 中同样的行为
-
是的前台可以解决你的问题
-
使用 WorkManager,在后台工作,可以在应用被终止时保存文件
-
在这种情况下,工作经理或前台服务都会有所帮助
标签: android android-intent android-activity android-service android-lifecycle