意图

使用隐含意图的注意事项

在调用隐式意图时,检查系统是否可以处理隐藏意图总是有帮助的。

这可以通过使用 PackageManager.queryIntentActivities(Intent intent, int flags) 进行检查来完成

PackageManager pm = getActivity().getPackageManager();
if (intent.resolveActivity(pm) != null) {
    //intent can be handled
    startActivity(intent);
} else {
     //intent can not be handled
}

开始活动,这是一个 singleTasksingleTop

当活动的启动模式singleTasksingleTop 时,只要活动以数据 null 启动,就会调用 onActivityResult。要防止这种情况,请使用 Intent.setFlags(0) 重置默认标志。