【发布时间】: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