据我所知,onRetainNonConfigurationInstance是一个冗余回调。如果我的活动有非常昂贵的初始化,我最好使用onSaveInstanceState。保存的实例比非配置实例包含更多情况。使用一个API与另一个API有什么指导原则吗?感谢。
答案 0 :(得分:48)
据我所知,onRetainNonConfigurationInstance是一个冗余回调。
不,不是。
如果我的活动初始化非常昂贵,我最好使用onSaveInstanceState。
onSaveInstanceState()
不适用于“非常昂贵的初始化”。它的设计目的是“嘿,用户对活动中的信息进行了一些更改,但还没有保存,不要丢失那些数据,不管怎样?”。
使用一个API与另一个API有什么指导原则吗?
如果它适合Bundle
并且不是太大,请使用onSaveInstanceState()
。所有不适合Bundle
(例如,套接字)或非常大的内容(例如,照片为Bitmap
)应该使用onRetainNonConfigurationInstance()
,并且您的应用程序应该就位如果需要,重新创建这些项目。