Android Intent构造函数参数

Android Intent构造函数参数,android,android-fragments,android-intent,Android,Android Fragments,Android Intent,Intent类有6个构造函数 Intent() 创建一个空的意图 意图(意图o) 复制构造函数 意图(字符串动作) 用给定的动作创建意图 Intent(字符串操作,Uri) 使用给定的操作和给定的数据url创建意图 意图(上下文包上下文,类cls) 为特定组件创建意图 Intent(字符串操作、Uri、上下文包上下文、类cls) 使用指定的操作和方法为特定组件创建意图 数据 我几乎是android编程新手,当我需要开始另一个活动或片段时,我通常会使用第五个: Intent(Contex

Intent类有6个构造函数

Intent()

创建一个空的意图


意图(意图o)

复制构造函数


意图(字符串动作)

用给定的动作创建意图


Intent(字符串操作,Uri)

使用给定的操作和给定的数据url创建意图


意图(上下文包上下文,类cls)

为特定组件创建意图


Intent(字符串操作、Uri、上下文包上下文、类cls)

使用指定的操作和方法为特定组件创建意图 数据

我几乎是android编程新手,当我需要开始另一个
活动
片段
时,我通常会使用第五个:

Intent(Context packageContext, Class<?> cls)
据我所知,
getActivity()
将返回一个
Activity

但是构造函数需要一个
上下文
,这怎么可能呢


是否可能是因为由
getActivity()
隐式调用
getApplicationContext()
返回的
Activity
扩展了上下文,因此您可以直接强制转换它:

Intent i = new Intent((Context)getActivity(), DestinationActivity.class);

仔细查看第五个意图声明中的参数
Context
。它反映了多态性。
Intent
接受一个
Context
参数,因此您可以传递
Context
或从
Context
类派生的任何对象

Activity、AppCompatActivity、IntentService和Service都派生自
上下文
类,因此可以作为参数传递给方法

活动继承上下文。因此,如果您在一个活动中,您只需要传递它自己来使用上下文。它还包含一个指向getBaseContext()的指针。如果需要整个应用程序上下文,您可能偶尔需要引用它,但很可能暂时不会

您可以找到有关活动类的更多详细信息

关于intent构造函数参数的这一点与您的类似,并且有一个非常好的答案。我想你想看看


希望有帮助。

在API文档中查看上下文是如何被嵌入的。您可以从活动、应用程序或片段返回上下文。其中任何一项也是上下文;)你提供的链接是我自己的问题(这个问题)@hamid\u c抱歉!我把它们弄混了。修好了!:)a@Marcin奥尔洛夫斯基。我希望你能解决我的问题。我正在创建一个特定于组件的意图。我在第二个参数下面得到了一条红色波浪线,这是我在下面代码中的服务类名。Intent wifi_Intent=新的Intent(Application.Context,WifiMonitoringService.class);当我把鼠标放在上面时,上面写着“预期”错误。请帮帮我。我已经发布了这个问题。您可以在以下链接中找到它
Intent i = new Intent((Context)getActivity(), DestinationActivity.class);