在官方文档(https://developer.android.com/reference/android/content/Intent.html#Intent(java.lang.String,%2520android.net.Uri for the method public Intent (Context packageContext, Class<?> cls
)中,我们可以阅读:
packageContext Context:实现此类的应用程序包的上下文。
这个 Stackoverflow 回答Intent#(Context packageContext, Class<?> cls) 中的 packageContext 是什么?精确说明此定义的含义:
您可以传递从任何应用程序类中获得的任何 Context 对象。因此,您可以使用 Activity、Service 对象,也可以调用 getApplicationContext() 并将返回的 Context 对象传递给 Intent 构造函数。
即使 an 的Intent
生命周期很短,我们是否应该使用getApplicationContext
而不是getActivity
为了避免内存泄漏(以便我们避免保留对可能希望从 RAM 中删除的活动的引用)?
例如,在片段类中,在创建活动后调用以避免出现NullPointerException
:
startActivity(new Intent(getActivity().getApplicationContext(), SplashScreen.class));
没关系,上下文不是由意图“持有”的。它只是用来查找一些东西(iirc,包的名称)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句