Android PackageManger.getLaunchIntentForPackage()不会抛出记录的异常

时间:2013-07-15 07:03:42

标签: java android android-4.2-jelly-bean

我尝试从PackageManager的第三方软件包中获取启动意图。根据文档(http://developer.android.com/reference/android/content/pm/PackageManager.html#getLaunchIntentForPackage(java.lang.String)),如果在系统上找不到给定的包名称,则会抛出PackageManager.NameNotFoundException,如果包不包含启动活动,则返回null。 / p>

当我尝试捕获异常时,出现编译错误:

    PackageManager manager = getPackageManager();
    try{
        Intent launchAppIntent = manager.getLaunchIntentForPackage("somePackageName");
        //...
    } catch (PackageManager.NameNotFoundException exception){

    }
  

java:exception   android.content.pm.PackageManager.NameNotFoundException永远不会   抛出相应的try语句的主体

我认为一种可能性可能是该方法的行为发生了变化,它总是返回null而不是抛出异常。但那么,我是否还应该围绕通话包装一个试块?

我应该如何解决这个问题?

我目前正在针对Android 4.2.2进行构建。

1 个答案:

答案 0 :(得分:4)

文档已过时。

已从Android 1.6(API级别4)中的方法中删除

“throws NameNotFoundException”。

从Android 4.0开始,ApplicationPackageManager.java中的当前实现也不会引发任何异常。

您可以安全地删除try catch。

P.S。:我知道,答案有点延迟,但我偶然发现了,所以为什么不在这里分享。