Android StartActivity和FragmentTransaction之间的区别

Android StartActivity和FragmentTransaction之间的区别,android,android-intent,android-fragments,fragment,Android,Android Intent,Android Fragments,Fragment,两者的区别是什么 Intent i = new Intent(getActivity(), HomeworkPagerActivity.class); i.putExtra(HomeworkFragment.EXTRA_HOMEWORK_ID, c.getId()); startActivity(i); 以及: 我用一个碎片发射另一个碎片 但是,应该使用哪一种,为什么 此外,我需要将数据从子片段(HomeworkFragment)传输回最初启动它的片段。哪种设置允许数据(如身份证号码)轻松传输

两者的区别是什么

Intent i = new Intent(getActivity(), HomeworkPagerActivity.class);
i.putExtra(HomeworkFragment.EXTRA_HOMEWORK_ID, c.getId());
startActivity(i);
以及:

我用一个碎片发射另一个碎片


但是,应该使用哪一种,为什么


此外,我需要将数据从子片段(HomeworkFragment)传输回最初启动它的片段。哪种设置允许数据(如身份证号码)轻松传输?

一个人开始一项活动

另一个实例化一个片段并将其附加到
fragment\u容器中,该容器是调用活动布局的一部分。

好的,看

Intent i = new Intent(getActivity(), HomeworkPagerActivity.class);
i.putExtra(HomeworkFragment.EXTRA_HOMEWORK_ID, c.getId());
startActivity(i);  
这将启动一个全新的
活动,它有自己的生命周期。其中:

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 

transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null); 

transaction.commit();   
R.id.Fragment\u容器中的
Fragment
替换为
newFragment



但是,应该使用哪一种,为什么

这取决于你的需要

另外,我需要从子片段传输数据 (HomeworkFragment)返回到第一次启动它的片段 地点。哪种设置允许传输数据(如id号) 容易吗


假设您有两个
片段
s,您可以使用接口首先将数据传输回活动,然后再传输回第二个片段。

“应该使用哪一个片段以及为什么?”:IMHO您应该不使用这两个片段。片段的设计理念是它们应该是自包含的和可重用的。如果一个
片段
“知道”某个
活动
或另一个
片段
,您就破坏了该模型。正如Little Child提到的,您的片段可以定义接口并使用这些接口与父级
活动进行通信,这应该允许间接控制和通信。
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 

transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null); 

transaction.commit();