intent类有6个构造函数
意图()
创建一个空意图。
意图(意图O)
复制构造函数。
意图(字符串操作)
使用给定的操作创建意图。
意图(字符串操作,uri uri)
使用给定的操作和给定的数据url创建意图。
意图(上下文包上下文,类CLS)
为特定组件创建意图。
意图(字符串操作、uri uri、上下文包上下文、类cls)
使用指定的操作为特定组件创建意图,并
数据。
我在android编程方面几乎是新手,当我需要启动另一个ActivityFragment时,主要使用第五个:

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类,因此可以作为参数传递给方法。

08-18 11:19
查看更多