android.content.ActivityNotFoundException: No Activity found to handle Intent { flg=0x10000000 pkg=

看我 大概率管用

问题:No Activity found to handle Intent

在这里插入图片描述

前言:今天照往常一样启动两个第三方应用,但是启动其中某一个应用的时候会闪退,另一个什么事情都没有,闪退的应用就报了上面图片中的错误。

修改前的启动应用的代码片段

public static void startActivity(Context context, String packageName) {
	Intent intent = new Intent();
	intent.setPackage(“packageName”);
	intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
	context.startActivity(intent);
}

经过了一番的研究后,我决定换一种启动方式,先获取第三方应用的启动意图后再启动应用,于是就有以下的代码片段

修改后的启动应用的代码片

public static void startActivity(Context context, String packageName) {
     try {
        	Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName);
        	intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                    | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
        	context.startActivity(intent);
        } catch (Exception e) {
            Logcat.e("startActivity failed");
        }

}

使用这种启动方式后,启动就没问题了,好极了!

附言:

在启动应用前,可以判断应用是否安装后再启动,可以使用以下方法进行包名判断是否安装了应用

    public static boolean isAppInstalled(Context context, String packageName) {
        if (packageName == null || packageName.length() == 0)
            return false;
        PackageInfo packageInfo;
        try {
            packageInfo = context.getPackageManager().getPackageInfo(packageName, 0);
        } catch (PackageManager.NameNotFoundException e) {
            packageInfo = null;
        }
        return packageInfo != null;
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值