2011-07-03 99 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

相關問題