【Android应用】Fragment跳转Activity时携带数据

在网上你可以看到很多Fragment都是用接口回调来携带数据跳转到Activity。

我觉得好麻烦,于是你们可以用我下面的方法

而我们可以直接使用下面这个方法:

protected void startActivity(Bundle bundle, Class<?> cls) {
	Intent intent = new Intent(getActivity(), cls);
	intent.putExtras(bundle);
	//resolveActivity是Intent类里面方法
	if (intent.resolveActivity(getActivity().getPackageManager()) != null)
	//那这里面是什么呢?
		startActivity(intent);
}

点进去会发现这个地方才是具体实现的startActivity的地方。

//此类继承了Fragment类,重写Fragment类的startActivity方法
@Override
public void startActivity(Intent intent) {
    if (intent == null) {
        PageLog.e("[startActivity failed]: intent == null");
        return;
    }
    if (CoreConfig.getContext().getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY) != null) {
        try {
            //再点进这个父类的方法,是什么呢?
            super.startActivity(intent);
        } catch (Exception e) {
            e.printStackTrace();
            PageLog.e(e);
        }
    } else {
        PageLog.e("[resolveActivity failed]: " + (intent.getComponent() != null ? intent.getComponent() : intent.getAction()) + " do not register in manifest");
    }
}

此处就是最普通的startActivity方法了,上面的都是在这个startActivity方法的基础上进行"加工"。

//位于Fragment类中
public void startActivity(Intent intent) {
    this.startActivity(intent, (Bundle)null);
}

你可能感兴趣的:(Android应用层,android,java,开发语言)