Android:如何在片段和活动之间高效地发送和接收数据?
我在活动中使用了两个片段,分别是Android:如何在片段和活动之间高效地发送和接收数据?,android,performance,android-fragments,android-activity,Android,Performance,Android Fragments,Android Activity,我在活动中使用了两个片段,分别是ViewPager和TabLayout。我想在我的活动和我的片段之间发送和接收数据 我不喜欢使用带有static变量的类来解决这个问题。有没有更好的方法来完成这项任务而不损失太多内存和资源。因为静态数据成员在应用程序的整个生命周期中都不会死亡。所以他们从不释放任何内存块。这对于应用程序在三星设备上运行来说是一个大问题,或者你可以说非根设备限制了RAM的使用 使用接口。下面是Android doc的一个摘录,其中包含了有关如何在片段和活动之间进行通信以及如何在活动和
ViewPager
和TabLayout
。我想在我的活动
和我的片段
之间发送和接收数据
我不喜欢使用带有
static
变量的类来解决这个问题。有没有更好的方法来完成这项任务而不损失太多内存和资源。因为静态数据成员在应用程序的整个生命周期中都不会死亡。所以他们从不释放任何内存块。这对于应用程序在三星设备上运行来说是一个大问题,或者你可以说非根设备限制了RAM的使用 使用接口。下面是Android doc的一个摘录,其中包含了有关如何在片段
和活动
之间进行通信以及如何在活动
和之间进行通信的详细示例:
为了允许片段与其活动通信,您可以在片段类中定义一个接口,并在活动中实现它。片段在其onAttach()生命周期方法期间捕获接口实现,然后可以调用接口方法以便与活动通信
这使您的片段
模块化,并允许您在多个活动中重用相同的片段
。您只需在新的活动
中实现接口
使用接口。下面是Android doc的一个摘录,其中包含了有关如何在片段
和活动
之间进行通信以及如何在活动
和之间进行通信的详细示例:
为了允许片段与其活动通信,您可以在片段类中定义一个接口,并在活动中实现它。片段在其onAttach()生命周期方法期间捕获接口实现,然后可以调用接口方法以便与活动通信
这使您的片段
模块化,并允许您在多个活动中重用相同的片段
。您只需在新的活动
中实现接口
你可以用两种方法来做。
第一种方法是定义一个接口。
第二种方法是eventbus
我喜欢乘公共汽车。即使可能,也要学习rxjava,并在那里使用事件逻辑 你可以用两种方法来做。
第一种方法是定义一个接口。
第二种方法是eventbus
我喜欢乘公共汽车。即使可能,也要学习rxjava,并在那里使用事件逻辑 以下是片段到活动通信的示例:
公共类HeadlinesFragment扩展ListFragment{
OnHeadlineSelectedListener McCallback
// Container Activity must implement this interface
public interface OnHeadlineSelectedListener {
public void onArticleSelected(int position);
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
// This makes sure that the container activity has implemented
// the callback interface. If not, it throws an exception
try {
mCallback = (OnHeadlineSelectedListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement OnHeadlineSelectedListener");
}
}
}以下是片段到活动通信的示例:
公共类HeadlinesFragment扩展ListFragment{
OnHeadlineSelectedListener McCallback
// Container Activity must implement this interface
public interface OnHeadlineSelectedListener {
public void onArticleSelected(int position);
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
// This makes sure that the container activity has implemented
// the callback interface. If not, it throws an exception
try {
mCallback = (OnHeadlineSelectedListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement OnHeadlineSelectedListener");
}
}
}可能重复:可能重复: