Android上下文类更具体

时间:2016-08-09 10:32:00

标签: android class android-intent textview

为了什么目的在android中使用了Context类?请深入解释我,并且更具体。我读了所有其他帖子,但没有一个具体到足以让我清楚地理解。

我知道Content类允许访问特定于应用程序的资源和类,以及对应用程序级操作的上调,例如启动活动,广播和接收意图等。

喜欢这里,
  Intent intent = new Intent(this,new_class.class);

为什么我们将Main活动上下文传递给Intent构造函数调用。此活动上下文包含哪些类型的信息,它将如何帮助它,它为它提供什么类型的资源访问?(请举例说明)。 同样的, 在这里,

TextView textview = new TextView(this);

为什么TextView需要活动上下文?它对它有何帮助。

2 个答案:

答案 0 :(得分:1)

它充当有关应用程序环境的全局信息的接口。这是一个抽象类,其实现由Android系统提供。它允许访问特定于应用程序的资源和类,以及应用程序级操作的上调,例如启动活动,广播和接收意图等。

您可以从delveloper的官方文档中获取所有信息...... https://developer.android.com/reference/android/content/Context.html

答案 1 :(得分:1)

Stackoverflow上有Context的几个很好的解释(请参阅链接的问题和我们的"搜索"功能。此外,Android的源代码可在grepcode.com上找到如果你真的感兴趣的话,你可以看看自己。如果你能看到自己,为什么要相信别人的答案?; - )

但是,我会回答您的具体问题:

Intent intent=new Intent(this,new_class.class);
     

为什么我们将Main活动上下文传递给Intent构造函数   call.the活动上下文包含什么类型的信息,如何   它会帮助它,它提供什么类型的资源访问   ?(请举例说明。)

在这种情况下(Intent的2参数构造函数),Context参数仅用于确定目标Activity包名称 。假设您的应用程序的软件包名称为" com.example.app",MyActivity是您的应用程序的活动,以下代码段在功能上完全相同:

Intent intent = new Intent(this, MyActivity.class);

Intent intent = new Intent(getApplicationContext(), MyActivity.class);

Intent intent = new Intent();
intent.setComponent(new ComponentName(this, "com.example.app.MyActivity");

Intent intent = new Intent();
intent.setComponent(new ComponentName(this, MyActivity.class);

Intent intent = new Intent();
intent.setComponent(new ComponentName("com.example.app", MyActivity.class);

Intent intent = new Intent();
intent.setClass(this, MyActivity.class);

Intent intent = new Intent();
intent.setClassName("com.example.app", "com.example.app.MyActivity");
  

同样,在这里,

     

TextView textview = new TextView(this);

     

为什么TextView需要活动上下文?它对它有何帮助。

所有View需要Context。将Context视为View"的所有者。这可以控制View的生命周期。一般情况下,View应与其拥有Activity的生命周期相同,这就是为什么您在创建{{1}时通常会将Activity作为Context参数传递的原因}。当View被销毁时,所有拥有的Activity也被销毁。此外,View使用View来获取资源(drawables,layouts,strings,themes等)。