我有一个 myApp,它首先启动 ActivityA,然后 ActivityA 启动 ActivityB。ActivityB 相当复杂,它包含 3 个选项卡。
我写了另一个killApp来调用killbackgroundprocess来杀死我的应用程序来模拟系统资源不足以回收一些应用程序。
单击主页按钮后,然后运行我的 killApp 以杀死我的应用程序,然后再次启动 myApp。我看到了一段时间的白色背景面板,然后重新绘制了 ActivityB。
我的理解是,当点击主页按钮时,myApp的活动被存储到磁盘,当它重新启动时,ActivityB在活动堆栈的顶部,所以它的onCreate被再次调用。因为 ActivityB 需要一些时间来初始化它的内容,所以在整个 Activity 准备好之前,我看到了一个白色的背景。
我的问题是:
1.如果是第一次启动app,就没有这个白底问题,是不是因为app启动时android系统会将所有资源加载到内存中,所以创建ActivityB时不需要等待资源加载?
2. 如何解决上述白底问题?我的想法是将整个活动保存到磁盘,例如将整个活动对象序列化到磁盘,然后再次调用 onCreate 时,对其进行反序列化。但我不确定如何实现它。有什么建议么?谢谢。