使用哪一个:onSaveInstanceState与onRetainNonConfigurationInstance?

时间:2010-11-26 13:59:47

标签: android

据我所知,onRetainNonConfigurationInstance是一个冗余回调。如果我的活动有非常昂贵的初始化,我最好使用onSaveInstanceState。保存的实例比非配置实例包含更多情况。使用一个API与另一个API有什么指导原则吗?感谢。

1 个答案:

答案 0 :(得分:48)

  

据我所知,onRetainNonConfigurationInstance是一个冗余回调。

不,不是。

  

如果我的活动初始化非常昂贵,我最好使用onSaveInstanceState。

onSaveInstanceState()不适用于“非常昂贵的初始化”。它的设计目的是“嘿,用户对活动中的信息进行了一些更改,但还没有保存,不要丢失那些数据,不管怎样?”。

  

使用一个API与另一个API有什么指导原则吗?

如果它适合Bundle并且不是太大,请使用onSaveInstanceState()。所有不适合Bundle(例如,套接字)或非常大的内容(例如,照片为Bitmap)应该使用onRetainNonConfigurationInstance(),并且您的应用程序应该就位如果需要,重新创建这些项目。