有一些第三方app如鲜时光,腾讯视频等会有这么一个场景,打开这些APP之后突然断电,再次上电,这些APP打开之后就闪退无法再次打开了。根据日志可以判断这种情况是由于APP持久化数据(往本地保存APP配置信息)的时候没有立刻写入到物理内存再断电数据丢失或者损坏导致的。一般情况下,对于我们自研的APP来说,在write()方法后close()数据流之前sync()一下就行了,比如系统默认设置在设置12/24小时制或者是设置静态IP动态IP后就会出现这种情况,也可以用这种方式解决。但是这种第三方的,我们无法控制,而且这两个APP还比较特殊,它们都是用了FilterOutputStream写数据的,所以需要在这个类里进行修改。
路径:libcore/ojluni/src/main/java/java/io/FilterOutputStream.java
diff --git a/ojluni/src/main/java/java/io/FilterOutputStream.java b/ojluni/src/main/java/java/io/FilterOutputStream.java
index 89f5ef5..190643b 100644
--- a/ojluni/src/main/java/java/io/FilterOutputStream.java
+++ b/