如果我传入手机上存在的包名,以下代码将卸载设备上的包。
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语句中的代码,但它不起作用。
答案 0 :(得分:2)
我的例外没有处理
这是因为它不是例外,不是来自你的过程。
我的异常处理有什么问题?
除了对这种情况不起作用外,没什么。
在尝试删除软件包之前,使用PackageManager
查看软件包是否存在。