2012-03-06 107 views
1

在我的應用程序中,我必須檢查用戶位置,然後連接到服務器以查明最近的城市是什麼。這意味着我有兩個昂貴的對象,我想保留配置更改。一個是查找位置的任務,另一個是從服務器檢索數據的AsyncTask。現在我該怎麼做,保留兩者?將多個對象傳遞給onRetainNonConfigurationInstance

我的做法是在我的活動像這樣來創建一個靜態類:

static class NonConfigurationObject{ 

    MyLocation myLocationObject; 
    AsyncTask myAsyncTask; 

} 

然後創建這兩個對象時,我把它們傳遞給這個NonConfigurationObject並保留了該對象,然後如果發現MyLocation和的AsyncTask在那裏,如果沒有必要創建它們。

這是一個很好的方法嗎?因爲它對我來說似乎很好,但我沒有看到它在任何地方以這種方式完成。

編輯:所以這種方法似乎沒問題。但是如果您有其他方式,請分享。

+0

我也找到了一些方法來傳遞多個對象,你能告訴更多你是如何做到這一點的。 – Dory 2013-12-27 09:35:18

+0

這不是正確的做法了。 'onRetainNonCOnfigurationInstance'已被棄用:http://developer.android.com/reference/android/app/Activity.html#onRetainNonConfigurationInstance()。 – 2013-12-27 11:15:46

+0

因此,如何做到這一點。 – Dory 2013-12-27 11:21:24

回答

2

只要您使用靜態類來避免內存泄漏,這是一種可接受的方法。

+0

感謝您的快速響應。這是可以接受的,你說。那麼有沒有更好,更優化,更簡單的方法? – 2012-03-06 22:07:42

+0

我不認爲有更好的方法。它重量輕,簡單快捷。我說可以接受,因爲我不喜歡說只有一種方法可以做點什麼:) – 2012-03-06 22:11:43