从android中的Thread检索应用程序上下文

时间:2011-08-13 18:31:17

标签: java android thread-safety

是否可以通过某种静态调用从非主线程中检索应用程序上下文?

由于

2 个答案:

答案 0 :(得分:3)

是。有很多(见下文),但根本不推荐。通过自定义构造函数创建线程时,最好传递上下文。

示例(再次 - 真的失去了):

活动中的

class SomeActivity extends Activity {
    public static Context ctx;

    protected void onCreate(Bundle bundle) {
        // ...
        ctx = this;
        // ...
    }

    public static Context getLastSetContext() {
        return ctx;
    }
} 

在帖子中:

Context ctx = SomeActivity.getLastSetContext();

答案 1 :(得分:3)

谷歌推荐的创建应用程序类实例的方法。 从他们的文件:

“通常不需要子类Application。在大多数情况下,静态单例可以以更模块化的方式提供相同的功能。如果您的单例需要全局上下文(例如注册广播接收器),则要检索的函数它可以被赋予一个Context,它在第一次构造单例时在内部使用Context.getApplicationContext()。“

参考 1 2