Java 如何避免应用程序崩溃
我最近开始制作一个新的应用程序,它基本上是一个带有可点击项目的Java 如何避免应用程序崩溃,java,android,eclipse,string,Java,Android,Eclipse,String,我最近开始制作一个新的应用程序,它基本上是一个带有可点击项目的ListView,我将它设置为打开另一个应用程序。问题是,如果应用程序不存在,应用程序就会崩溃。下面是一个例子: if(position == 0) { Intent i = new Intent(Intent.ACTION_MAIN); PackageManager managerclock = getPackageManager(); i = managerclock.getLaunchIntentForP
ListView
,我将它设置为打开另一个应用程序。问题是,如果应用程序不存在,应用程序就会崩溃。下面是一个例子:
if(position == 0) {
Intent i = new Intent(Intent.ACTION_MAIN);
PackageManager managerclock = getPackageManager();
i = managerclock.getLaunchIntentForPackage("com.test.example");
i.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(i);
}
假设包名不存在。我应该添加什么才能让它向您发送一条消息,告诉您应用程序不存在并避免它崩溃?一个简单的尝试捕获可能是?您可以做的另一件事是查询操作系统是否存在该名称的应用程序。仅当应用程序存在时启动
public boolean isPackageExisted(String targetPackage){
List<ApplicationInfo> packages;
PackageManager pm;
pm = getPackageManager();
packages = pm.getInstalledApplications(0);
for (ApplicationInfo packageInfo : packages) {
if(packageInfo.packageName.equals(targetPackage)) return true;
}
return false;
}
public boolean ispackage存在(字符串targetPackage){
列出首先检查软件包是否是这样安装的
PackageManager pm = context.getPackageManager();
try {
pm.getPackageInfo(packagename, PackageManager.GET_ACTIVITIES);
} catch (NameNotFoundException e) {
}
试着接球
if(position == 0) {
try
{
Intent i = new Intent(Intent.ACTION_MAIN);
PackageManager managerclock = getPackageManager();
i = managerclock.getLaunchIntentForPackage("com.test.example");
i.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(i);
}
catch(Exception e)
{
//Do what ever you want
}
}