首页 > Fragment生命周期相关

Fragment生命周期相关

大家好,安卓初学者,遇到这样一个问题,如下图,通过选项卡切换Fragment,当前显示的是谷歌地图Fragment,这里我在地图中添加Markers,每个Marker的经纬度是读取的数据库中的数据,目前我是在该地图Fragment的onActivityCreated中读取经纬度然后依此标记marker的。

问题是,数据库中的每个Marker经纬度信息可能是变化的,程序中会有一个模块与服务器交互更新数据库信息,我想在每次点进这个地图Fragment中读取数据库经纬度信息更新重绘Markers。现在我进入APP后,点一下这个地图Fragment标记出markers,然后切换到其他如主页Fragment,再切换回地图Fragment,即使此间有数据库更新,markers位置也不变化,也就是说markers没有重新绘制。

请问我这个想法该如何实现?是生命周期的问题吗?
谢谢大家!


您的需求跟Fragment的生命周期并无太多关系,onActivityCreated在Fragment销毁之前只会被回调一次。如果你需要在重新返回到地图Fragment进行刷新操作的话,你应该通过某种方式(如,函数调用,广播通知)来告诉Fragment,你应该做刷新操作了。比如说,你可以定义一个消息接口OnIntoPage,每个Fragment都监听这个消息,Tab做更改的时候,将这个消息发送出去。这些基本的消息响应,你可以写一个BaseFragment来处理,所有的具体实现的Fragment都继承这个BaseFragment,各自处理自己的实现。
以上回答为个人愚见,希望对您有所帮助。


是生命周期问题,你可以在onResume中重绘Markers。
关于更好的了解生命周期,建议把Fragment所有的生命周期方法都打上Log,然后看2个选项卡切换时,那些生命周期被调用了

【热门文章】
【热门文章】