App 在后台久置后,再次从桌面或最近的任务列表唤醒时经常会发生崩溃,这往往是 App 在后台被系统杀死,再次恢复的时候遇到了问题,而在使用 FragmentActivity+Fragment 的时候会更加频繁。比如,如果 Fragment 没有提供默认构造方法,就会在重建的时候因为反射创建 Fragment 失败而崩溃,再比如,在 onCreate 里面 new 一个 FragmentDialog,并且 show,被后台杀死后,再次唤醒的时候,就会 show 两个对话框,这是为什么?其实这就涉及了后台杀死及恢复的机制,其中涉及的知识点主要是 FragmentActivity、ActivityManagerService、LowMemoryKiller 机制、ActivityStack、Binder 等一系列知识点。