小编z00*_*00l的帖子

在Android中安装静态变量的"Globals"类是否安全?

任何人都可以启发我关于在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)

static android global

14
推荐指数
1
解决办法
4087
查看次数

为多个getter执行的常见操作

当第一次访问几个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 …

c# reflection getter inheritance

2
推荐指数
1
解决办法
68
查看次数

标签 统计

android ×1

c# ×1

getter ×1

global ×1

inheritance ×1

reflection ×1

static ×1