我想在我的setRetainInstance(true)上使用FragmentActivity,以便每次屏幕旋转时都不会调用onCreate()。我只想将布局调整为屏幕调整,而无需重新建立位置服务连接并通知用户。应该怎么做?

最佳答案

首先阅读有关setRetainInstance做什么(和不做什么)的片段documentation

综上所述:


  public void setRetainInstance(布尔值保留)
  
  API级别11中添加了控制是否保留片段实例的功能
  跨活动重新创建(例如通过配置更改)。
  这只能与不在后堆栈中的片段一起使用。如果设置,
  当一个活动是
  重新创建:
  
  onDestroy()不会被调用(但onDetach()仍然会被调用,因为
  该片段正在从其当前活动中分离出来)。
  由于未创建片段,因此不会调用onCreate(Bundle)
  重新创建。 onAttach(Activity)和onActivityCreated(Bundle)将
  仍然被称为。


考虑到这一点,请确保您的“定位服务连接”等都位于不会死亡的地方(无论如何,它们都不应位于“活动”或“片段”中)。

09-04 11:28