我有一个方法可以将Intent解析为ComponentName:
private static ComponentName resolveViewExternalIntent(Context context)
{
Intent intent = createIntent();
return intent.resolveActivity(context.getPackageManager());
}
很少见到以下ACRA崩溃报告:
java.lang.NullPointerException
at android.content.Intent.resolveActivity(Intent.java:4518)
at com.mypackage.myclass.resolveViewExternalIntent(SourceFile:271)
at om.mypackage.myActivity.onResume(SourceFile:517)
在Intent类中的那一行代码之所以出现NPE,是因为PackageManager为null
。
我偶尔会遇到这个问题,但足够频繁,让我写下这个问题。
有没有人知道,在什么情况下Context/Activity.getPackageManager()可能返回null?在我的情况下,context
是Activity对象本身,而不是ApplicationContext。当这种情况发生时,应用正在执行Activity.onResume()生命周期方法。