什么时候不能使用onRetainNonConfigurationInstance()

时间:2011-06-16 06:21:56

标签: android orientation

onRetainNonConfigurationInstance()的文档说“此功能纯粹被称为优化,您不能依赖它被调用。”

在什么情况下onRetainNonConfigurationInstance()不会被调用?

关于我要实现的目标的一些背景知识:我希望activity通知orientation可靠地更改(但也希望活动被杀死并像往常一样重新启动)

1 个答案:

答案 0 :(得分:1)

如果您希望在方向更改时再次重新启动活动(调用onCreate-> onResume),则不要在清单中放置configChanges =“orientation”。您可以在活动的onCreate方法中检查屏幕的方向,这可能就是您所需要的。如果您不希望活动重新启动,而只是切换方向,那么您在活动清单中添加configChanges标志,然后只调用onConfigurationChanged(),您也可以获得屏幕方向。当您在onCreate方法中运行昂贵的操作(启动线程查询数据库等)并且您希望将该信息/数据重用于纵向和横向时,第二种方法是好的。即使你想要你可以改变onConfigurationChanged()中的布局,就像它在创建时所做的那样,但是你再次需要找到对所有视图的引用,因为它们的id在这种情况下是不一样的。

在任何情况下,如果您想要在更改之前存在对某些内容的引用,那么configChanges方法更适合处理更改,但如果您要更改布局或其他内容,则需要更多工作。