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
    }

}