【问题标题】:Exception not properly handled in Android intent to uninstall packageAndroid 意图卸载包时未正确处理异常
【发布时间】:2014-09-30 22:53:41
【问题描述】:

如果我传入手机上存在的软件包名称,以下代码将卸载设备上的软件包。

public static String Execute(Context myContext, String packageName){

        Intent intent = new Intent(Intent.ACTION_DELETE);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        try{
            intent.setData(Uri.parse("package:" + packageName));
            myContext.startActivity(intent);
        }catch(Exception e){
            System.out.println("package " + packageName + " not installed");
            return "Package was not uninstalled";
        }

        return "Package " + packageName + " uninstalled.";
    }

但是,如果我传入一个不在电话上的包名称,我的异常不会被处理,并且我会收到一个错误提示

“[packageName] 中的 packageName 或 componentName 无效”

然后返回语句“Package [packageName] uninstalled”。我在这里的异常处理有什么问题?如果发生该错误,我希望执行/返回 catch 语句中的代码,但它不起作用。

【问题讨论】:

  • 请发布实际的堆栈跟踪。
  • 你确定你得到的错误是异常吗?它可能只是一个打印出来的字符串。

标签: android android-intent exception-handling


【解决方案1】:

我的异常没有处理

那是因为它不是例外,并且不是来自您的流程。

我这里的异常处理有什么问题?

没什么,除了对这种情况无效。

在尝试删除之前使用PackageManager查看包是否存在。

【讨论】:

  • 我认为这与此有关。谢谢。
猜你喜欢
  • 1970-01-01
  • 2017-03-05
  • 2016-08-21
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多