任何人都可以启发我关于在Android中持有全球价值观的类的安全性吗?
这是我的意思的一个简短例子:
public class Globals {
public static int someVariable = 0;
public static User currentUser = null;
public static Handler onLogin = null;
}
Run Code Online (Sandbox Code Playgroud)
然后在某处Activity我做以下事情:
Globals.someVariable = 42;
Globals.currentUser = new User("John", "Doe");
Run Code Online (Sandbox Code Playgroud)
Globals.currentUser一旦用户登录,我就必须在我的应用程序中的多个位置依赖,但我不确定是否应该这样做,并且如果我可以使用这样的处理程序.
我随处读到Android应用程序可能随时被杀死,这是否意味着它被完全杀死或者只是其中的一部分,因此Globals只能杀死我的班级?
或者有没有其他的方式,存储在一个安全的方式在全球范围提供数据,而每一个成员的变化写入数据库(其实,我的User阶级是一个有点比这个例子更复杂;-).
谢谢你的努力!
编辑:好的,这是我最后做的:
public class MyApp extends Application {
private static MyApp _instance;
public MyApp() {
super();
_instance = this;
}
public static MyApp getContext() {
return _instance;
}
....
private User _user = null; …Run Code Online (Sandbox Code Playgroud) 当第一次访问几个getter中的一个时,我正试图找到一种巧妙的方法来触发加载机制.我的第一个想法是这样的:
public class Customer {
private bool loaded = false;
public int PK { get; set; }
public string Email { get; set; }
public string Name { get { if (!loaded) loadData(); return _name; } set { ... } }
public string Street { get { if (!loaded) loadData(); return _street; } set { ... } }
public string City { get { if (!loaded) loadData(); return _city; } set { ... } }
}
Run Code Online (Sandbox Code Playgroud)
简而言之,在此示例中,每个都Customer存在其基础数据PK …