我想在我的setRetainInstance(true)
上使用FragmentActivity
,以便每次屏幕旋转时都不会调用onCreate()
。我只想将布局调整为屏幕调整,而无需重新建立位置服务连接并通知用户。应该怎么做?
最佳答案
首先阅读有关setRetainInstance做什么(和不做什么)的片段documentation。
综上所述:
public void setRetainInstance(布尔值保留)
API级别11中添加了控制是否保留片段实例的功能
跨活动重新创建(例如通过配置更改)。
这只能与不在后堆栈中的片段一起使用。如果设置,
当一个活动是
重新创建:
onDestroy()不会被调用(但onDetach()仍然会被调用,因为
该片段正在从其当前活动中分离出来)。
由于未创建片段,因此不会调用onCreate(Bundle)
重新创建。 onAttach(Activity)和onActivityCreated(Bundle)将
仍然被称为。
考虑到这一点,请确保您的“定位服务连接”等都位于不会死亡的地方(无论如何,它们都不应位于“活动”或“片段”中)。