Android代码跳转到市场时,手机上没有市场软件的异常

原本我的代码这么写的:
    
    
    
    
    /**
* 进入市场并进入本应用的页面
* @param mContext 上下文
*/
public static void enterMarket(Context mContext) {
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setData(Uri.parse("market://details?id=" + mContext.getPackageName()));
    mContext.startActivity(intent);
}
但是如果手机上没有市场软件的话会报如下异常:
01-29 06:59:52.121: E/AndroidRuntime(9960): FATAL EXCEPTION: main
01-29 06:59:52.121: E/AndroidRuntime(9960): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=market://details?id=com.jero.test }
............................

经过查找,以下方法可以解决:
    
    
    
    
/**
* 进入市场并进入本应用的页面
* @param mContext 上下文
*/
public static void enterMarket(Context mContext) {
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setData(Uri.parse("market://details?id=" + mContext.getPackageName()));
    mContext.startActivity(Intent.createChooser(intent, "请选择要查看的市场软件"));
}
mContext . startActivity ( Intent . createChooser ( intent , "请选择要查看的市场软件" ));
表示将弹出一个对话框让用户选择市场软件,第一个参数表示跳转的intent,第二个表示弹出对话框的标题,没有市场软件的话会显示如图:


你可能感兴趣的:(android,异常,软件,市场,market)