我有一个Activity连接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活动的时候关闭它,我想永远销毁它。
你会怎么做? THX!
答案 0 :(得分:1)
为什么不在更改方向时使用onConfigChanged()来保留您的活动。这样,只有当用户退出Activity时才会调用onDestroy()。
检查Handling the Configuration Change Yourself(位于页面底部),了解如何使用onConfigChanged()。
<强> onConfigChanged 强>
“如果您的应用程序在特定配置更改期间不需要更新资源,并且您有性能限制,需要您避免重新启动活动,那么您可以声明您的Activity处理配置更改本身,这会阻止系统重新启动您的活动。“