2012-03-06 105 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