intent类有6个构造函数
意图()
创建一个空意图。
意图(意图O)
复制构造函数。
意图(字符串操作)
使用给定的操作创建意图。
意图(字符串操作,uri uri)
使用给定的操作和给定的数据url创建意图。
意图(上下文包上下文,类CLS)
为特定组件创建意图。
意图(字符串操作、uri uri、上下文包上下文、类cls)
使用指定的操作为特定组件创建意图,并
数据。
我在android编程方面几乎是新手,当我需要启动另一个Activity
或Fragment
时,主要使用第五个:
Intent(Context packageContext, Class<?> cls)
当我想从
Activity
开始Fragment
时,我会这样做:Intent i = new Intent(getActivity(), DestinationActivity.class);
据我所知,
getActivity()
将返回一个Activity
但是构造器期望一个
Context
,这怎么可能呢????是不是因为
Activity
返回的getActivity()
隐式调用了getApplicationContext()
???? 最佳答案
仔细看一下第五个意图声明中的参数。它反映了多态性。Context
接受一个Intent
参数,因此您可以传递任何Context
对象或从Context
类派生的对象。
activity、appcompativity、intentservice、service都派生自Context
类,因此可以作为参数传递给方法。