2011-07-03 69 views
0

我有一个Activity连接服务器里面的onCreate方法。因为即使旋转屏幕,连接也必须保持打开状态,所以我将其引用存储到静态变量中。Android:关闭连接只有当活动应该被销毁

例子:

public class Main extends Activity 
{ 
    protected static MyConnector connector; 

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

如果我打开从另一个主要活动,但连接必须保持打开,如果我关闭的主要活动应当将其关闭。

我有的问题是我不知道何时/如何关闭连接。如果我在onDestroy中关闭它,如果我旋转屏幕,它将被销毁,因为当方向改变时重新创建活动。如果我关注活动焦点,那么在我去下一个活动时会关闭它。所以......我想只在我不需要主要活动时才关闭它,我想永远销毁它。

你会怎么做?谢谢!

回答

1

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

检查Handling the Configuration Change Yourself(在页面的底部),看看如何使用onConfigChanged()

onConfigChanged

“如果你的应用程序不需要特定的结构变更时更新资源和您有需要,您可以避开活动重新启动性能的限制,那么你可以声明您的活动会自行处理配置更改,这会阻止系统重新启动您的活动。“

+0

是啊......我想过那个,但是......如果你有多个对象,那该怎么办?然后,你必须以某种方式返回一个数组或不适合。 – xpepermint

+0

太好了...谢谢。 – xpepermint

相关问题