为了什么目的在android中使用了Context类?请深入解释我,并且更具体。我读了所有其他帖子,但没有一个具体到足以让我清楚地理解。
我知道Content类允许访问特定于应用程序的资源和类,以及对应用程序级操作的上调,例如启动活动,广播和接收意图等。
喜欢这里,
Intent intent = new Intent(this,new_class.class);
为什么我们将Main活动上下文传递给Intent构造函数调用。此活动上下文包含哪些类型的信息,它将如何帮助它,它为它提供什么类型的资源访问?(请举例说明)。
同样的,
在这里,
TextView textview = new TextView(this);
为什么TextView需要活动上下文?它对它有何帮助。
答案 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等)。