我正在开发一个由几个活动组成的应用程序:
活动1:具有“开始”按钮的应用程序的主屏幕活动2:用户从列表中选择其标识(多个用户将使用application)
以下是更多信息:
6-10中的每个活动都必须知道登录的是什么用户,以及selected
。
从现在起,我一直使用包在活动之间交换数据,但随着操作数量的增加,代码似乎变得复杂了(有些操作使用3-4个活动从用户收集数据)。将所有数据传递给每个创建的活动似乎不太好。
我正在考虑将“用户名”和选定的“事件”存储为类的静态字段。我将非常简化代码,但我不确定如果用户允许在某个时候按下"home按钮“并运行另一个需要大量内存的应用程序,这些数据是否会持续存在。
存储在静态字段中的数据是否安全?
发布于 2011-12-14 11:58:08
不是的。您不能保证所有这些都存在于同一个类加载器中,在这种情况下,您将在不同的位置处理这些类的不同副本,而不是访问相同的共享状态。
这可能会发生在现在,但不,这不是我所说的“安全”。
发布于 2011-12-14 12:02:09
最好有一个自定义的应用程序对象并将它们存储在那里。应用程序对象将与您的应用程序一样存在。
http://developer.android.com/reference/android/app/Application.html
您可以通过将getApplicationContext()转换为任何自定义应用程序类型来访问应用程序对象:
public class CustomApplication extends Application {
private String userId;
public void onCreate() {
super.onCreate();
...
}
public String getUserId() {
return userId;
}
...
}
从活动调用:((CustomApplication) getApplicationContext()).getUserId();
发布于 2011-12-14 11:57:34
您可以为此使用SharedPreference,而不是在类中使用静态变量/对象。看看这个博客http://android-er.blogspot.com/2011/01/example-of-using-sharedpreferencesedito.html
https://stackoverflow.com/questions/8504001
复制相似问题