0

我有一个在 onCreate 方法中连接服务器的活动。因为即使在我旋转屏幕时连接也必须保持打开状态,所以我将其引用存储到静态变量。

例子:

public class Main extends Activity 
{
   protected static MyConnector connector;

   public void onCreate(Bundle savedInstanceState) 
   {
      if (connector == null)
      {
         connector = new MyConnector();
      }
   }
}

如果我从 Main 打开另一个活动,则连接必须保持打开状态,但如果我关闭 Main 活动,它应该关闭。

我遇到的问题是我不知道何时/如何关闭连接。如果我在 onDestroy 内关闭它,如果我旋转屏幕,它将被销毁,因为当方向改变时会重新创建活动。如果我在活动焦点上关闭它,它将在我进入下一个活动时关闭。所以......我只想在不需要 Main 活动时关闭它,并且我想永远销毁它。

你会怎么做?谢谢!

4

1 回答 1

1

为什么不使用onConfigChanged()在更改方向时保留您的活动。这样 onDestroy() 只会在用户退出 Activity 时被调用。

检查自己处理配置更改(在页面底部)以了解如何使用onConfigChanged()

onConfigChanged

“如果您的应用程序在特定配置更改期间不需要更新资源,并且您的性能限制要求您避免 Activity 重启,那么您可以声明您的 Activity 自己处理配置更改,从而防止系统重启你的活动。”

于 2011-07-03T05:31:38.287 回答