首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取我的活动上下文?

如何获取我的活动上下文?
EN

Stack Overflow用户
提问于 2012-09-07 23:12:49
回答 7查看 270.1K关注 0票数 82

我真的不明白整个事情是如何工作的,所以如果我有一些A类需要扩展ActivityB类的上下文,我如何获得那个上下文呢?

我正在寻找一种比将上下文作为参数提供给类A构造函数更有效的方法。例如,如果类A将有数百万个实例,那么我们最终将拥有数百万个指向Context的冗余指针,而我们应该以某种方式只在某个地方拥有一个和一个getter函数……

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-09-07 23:45:24

您可以使用Application类( android.application包中的公共类),即:

基类,适用于需要维护全局应用程序状态的用户。您可以通过在AndroidManifest.xml的标记中指定其名称来提供您自己的实现,这将导致在创建应用程序/包的进程时为您实例化该类。

要使用此类,请执行以下操作:

代码语言:javascript
复制
public class App extends Application {

    private static Context mContext;

    public static Context getContext() {
        return mContext;
    }

    public static void setContext(Context mContext) {
        this.mContext = mContext;
    }

    ...

}

在您的清单中:

代码语言:javascript
复制
<application
        android:icon="..."
        android:label="..."
        android:name="com.example.yourmainpackagename.App" >
                       class that extends Application ^^^

在活动B中:

代码语言:javascript
复制
public class B extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sampleactivitylayout);

        App.setContext(this);
                  ...
        }
...
}

在A类中:

代码语言:javascript
复制
Context c = App.getContext();

备注

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

票数 44
EN

Stack Overflow用户

发布于 2012-09-07 23:24:09

好的,我会给出一个小例子,告诉你怎么做

代码语言:javascript
复制
public class ClassB extends Activity
{

 ClassA A1 = new ClassA(this); // for activity context

 ClassA A2 = new ClassA(getApplicationContext());  // for application context. 

}
票数 59
EN

Stack Overflow用户

发布于 2016-10-22 23:09:58

获取活动上下文的最好、最简单的方法是将.this放在活动名称之后。例如:如果您的活动名称为SecondActivity,则其上下文将为SecondActivity.this

票数 36
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12320857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档