在我的应用程序中,我使用了以下内容,
String launch = rowItems.get(position).getApplauncher().toString();
Intent in = getPackageManager().getLaunchIntentForPackage(
launch);
System.out.println("lauch=" + launch);
System.out.println("intent=" + in);
startActivity(in);
因为我正确地启动了String not null
但之后在Intent中传递,Intent打印 null
我也尝试使用** Intent in = getPackageManager()。getLaunchIntentForPackage( getPackageName());
它工作正常,而且不是null, 那么为什么我的String意图变为null, 我对System.out.println的字符串意图打印如下(在logcat中):
I/System.out(3323): lauch=Intent { act=android.intent.action.MAIN cat=
[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.android.speechrecorder
cmp=com.android.speechrecorder/.SpeechRecorderActivity }
I/System.out(3323): intent=null // but here got null
为什么它为空?以及如何解决这个问题?
答案 0 :(得分:0)
为什么它为空?
并非设备上安装的每个软件包都具有启动器活动。
以及如何解决这个问题?
检查null
并妥善处理。或者,以其他方式解决您的问题。例如,如果您正在编写主屏幕式启动器,则应在queryIntentActivities()
/ MAIN
LAUNCHER
上使用Intent
来查找可启动的活动。