2

在某些地方,我们给出了类似“DatabaseUtil db=new DatabaseUtil(DailyPlanView.this);” 其中 DatabaseUtil 是类,构造函数参数是上下文。但是,如果我们在 DailyPlanVIew 类中为 DatabaseUtil 类创建对象,我们将使用上面的代码。我的疑问是上下文的用途是什么,而不是传递上下文对象作为我们传递“this”的参数。

4

1 回答 1

2

每当您处理 Context 时,了解它在所有事物中的用途很重要。从使用数据库到获取系统服务。这是 android 使用 Context 的方式所必需的。具体来说,当您传递时,this您基本上传递的是封装此语句的类。

class MyActivity extends Activity
{

     onCreate(Bundle bundle)
     {
        View v = new View(this);
     }
}

传递this是指封装它的对象。这是一个面向对象的概念......在哪里this引用MyActivity. 传递上下文时要记住的一件事是确保传递正确的类型。某些 Context 对象的寿命比其他对象长,如果管理不当,可能会导致 Context 泄漏。特别是在这个例子中,这是有效的,因为 Activity 扩展了 Context。

差异出现在 View 类中。

getApplicationContext()

getBaseContext()

this,在活动的上下文中具有活动的生命周期(上面的示例)

关于 Context 要添加的一件事是,它基本上是对当前应用程序的引用,它是特定数据。

可以在此线程中找到有关上下文的更多信息: Android 上的“上下文”是什么?

于 2012-10-02T05:38:30.027 回答