android - Intent 构造函数参数

标签 android android-fragments android-intent

Intent 类有 6 个构造函数

Intent()

Create an empty intent.


Intent(Intent o)

Copy constructor.


Intent(String action)

Create an intent with a given action.


Intent(String action, Uri uri)

Create an intent with a given action and for a given data url.


Intent(Context packageContext, Class cls)

Create an intent for a specific component.


Intent(String action, Uri uri, Context packageContext, Class cls)

Create an intent for a specific component with a specified action and data.

我几乎是 android 编程的新手,当我需要启动另一个 ActivityFragment 时,我主要使用第五个:

Intent(Context packageContext, Class<?> cls)

当我想从 Fragment 启动一个 Activity 时,我会这样做:

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

据我所知,getActivity() 将返回一个 Activity

但是构造函数需要一个Context,这怎么可能???

是否可能因为 getActivity() 返回的 Activity 隐式调用 getApplicationContext()???

最佳答案

仔细查看第五个 Intent 声明中的参数 Context。它反射(reflect)了多态性。 Intent 采用 Context 参数,因此您可以传递任何属于 Context 或派生自 Context 类的对象.

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

关于android - Intent 构造函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31970896/

相关文章:

java - 相同的代码在java中有效,但在android中无效

android - 如何在插入数据库时​​立即检索插入的值

android-fragments - Google 在 AVD 上使用 4.3 SDK 18 映射 v2 灰屏

android - 带有支持库的 ActionBar 选项卡

android - 在选择的底部导航 View 项目上重新创建 fragment

android - 在Service的onStartCommand中检索Intent的旧值

android - Android 设置 Activity 的典型布局结构是什么?

java - 如何在 Android 中使用 WLResourceRequest 创建 Multipart 请求

android - Intent.ACTION_HEADSET_PLUG 的状态 extra 总是返回 1

android - 传递结果失败 ResultInfo{who=null, request=100, result=-1, data=Intent