android独立开发问题总结(一)

283 阅读2分钟
说起activity的生命周期,大家都非常熟悉,随口就来,我也是,但是深入研究,应该在哪个方法干什么事,就比较模糊了,总之在onCreate方法中写就好了,如果有AA注解,在onResume方法中写就好了,但是真的是这样吗?通过这两个月的独立开发,因为业务需要,对activity的

生命周期又进一步的了解了。

1.数据更新最好不要放在onResume中

因为我的项目中列表有一个数据是实时更新的,比如视频观看量,文章观看量,为了方便我就把网络请求直接写在onResume中,这个观看详情返回上一个页面观看数就可以直接更新了,但是有个问题是,当前页面的最后一组数据会有重复,因为我是根据页数请求的数据,离开列表页面时,请求的页数并不会重置,所以就造成了数据重复,也就只能在onResume重置页数,但是这时的数据又是从第一页开始请求了,用户体验并不是很好,所以网络请求最好不要放在onResume
还有一个问题就是带返回值的跳转,这个时候activity的生命周期是先走onActivityResult,然后会走onResume,如果控件需要赋值的是intent带回来的值,在onActivityResult处理以后,在onresume进行网络请求后,又会重新刷新数据,导致onActivityResult的值丢失。

2.保存数据放在onPause方法中
有的页面需要在跳转的时候保存数据,我们一般会选择在onStop方法中进行保存,但是onStop方法并不是一定就会走到。比如说有个页面activityA跳到一个具有透明度的activityB,这时如果把保存数据写在onStop方法中,就不能够实现,因为如果一个activity当弹窗弹出或者覆盖他的是一个具有透明度的activity,这个activity走到onPause方法就不走了。