如果你在跳转的时候找不到目标Activity,然后你再执行startActivity方法,就会出现ActivityNotFindException。
所以在隐式启动Activity中,提供了一个判断:
PacageManager中的resolveActivity方法
如果找不到所需Activity,那么就会返回一个null。
PackageManager packageManager = getPackageManager();
if (packageManager.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY)!= nulll) {
startActivity(intent);
}else {
Toast.makeText(MainActivity.this,"找不到你想要的Activity",Toast.LENGTH_SHORT).show();
}
2.Intent 中的resolveActivity方法
if ( intent.resolveActivity(packageManager) != null){
//这个分支表示找到了目标Activity
}else {
}
3.如果有多个Activity满足了条件,那么系统就会默认的弹出提示框,效果如下:
![](https://i-blog.csdnimg.cn/blog_migrate/dabee4fdc4fe0a081abf47b3256737ad.png)
可以把“下次不在询问”去掉,效果如图:
![](https://i-blog.csdnimg.cn/blog_migrate/ed10cc567fd763798e11632dd5eee09a.png)
Intent intent = new Intent("xlj.xlj.m");
Intent chooser = Intent.createChooser(intent, "看你喜欢那个");
startActivity(chooser);