如何从另一个活动中进行片段刷新

时间:2013-12-31 17:11:03

标签: android android-fragments

每次我想让我的片段调用它是onStart()或onResume()时,我会做下一个:

        getFragmentManager().beginTransaction().replace(R.id.containero1, new Massenger_frag(conversationID)).addToBackStack(null).commit();

这对性能是否有益,是否有另一种方法告诉片段新信息到达,并且必须刷新其UI。

3 个答案:

答案 0 :(得分:1)

您可以保留对更换片段时使用的“Massenger_frag”对象的引用。您还可以在“Massenger_frag”类中定义方法“refresh”,并从该实例变量中调用它。片段中的onStart()/ onResume()也会调用相同的刷新方法以避免代码重复。

您目前正在做的事情并不快,并且每次构建新片段并且旧片段被解除分配时会增加很大的开销。

答案 1 :(得分:1)

解决方案很简单:我只使用BroadCast发送方和接收方,并将活动A的信息发送到活动B,活动B在其onReceive()中调用一个刷新其内容的函数!

答案 2 :(得分:0)

使用interface并创建自定义EventListeners。查看示例here