Activity间通过隐式Intent的跳转,在发出Intent之前必须通过resolveActivity检查,避免找不到合适的调用组件,造成
ActivityNotFoundException的异常。
正例:
public void viewUrl(String url, String mimeType) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(url), mimeType);
if (getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY) != null) {
startActivity(intent);
}else {//找不到指定的Activity
}
}
反例
Intent intent = new Intent();
intent.setAction("com.example.DemoIntent");
try {
startActivity(intent);
}catch (ActivityNotFoundException e) {
e.printStackTrace();
}