android 学习

原创
2016/01/01 22:01
阅读数 10

在我们使用activity时,我们应该避免使用finish()或者finishActivity()(关闭其他之前打开的activity)来关闭一个activity,而是让系统自动调用他的生命周期来关闭这个activity,因为这样做有时会是用户体验变差。

如果之前的activity被完全kill掉或者finish掉,他就必须重建。

我们应该在activity的onCreated()方法中实现那些全局的东西,而在onDestory()方法中释放资源,比如说在onCreated()方法中创建一个线程来实现网络下载任务,而在onDestoryed()方法中关闭这个线程。

onPause()方法中的代码应该尽量简便,因为太复杂的代码会阻塞线程,使用户体验变差

控件的onSaveEnabled()方法或者xml中的android:saveEnabled来对控件进入销毁后的恢复

onSaveInstance()方法虽然会在activity销毁时保存一些ui的状态信息,但是它并不一定每次都会自动执行,因为我们应该在这个方法内保存一些临时变量而不是保存一些持久的变量,我们应该在onPause()中保存那些持久性的变量(比如说把数据存进数据库)

在设备的的配置改变后(比如说屏幕旋转,键盘可用性),系统会执行onDestory()方法后马上执行onCreated()方法,通常我们使用的最多的恢复数据的方式就是在使用onSaveInstance()方法和onRestoreInstanceState()(或者onCreated())方法来恢复数据

有时候我们通过一个activity来启动另外一个activity,这个时候我们会共用同个数据,这时候我们应该明白这两个activity中的生命周期,通过这些生命周期来保证数据的正确性,(如A启动B,系统会先调用A的onPause()方法(之后不一定调用onStopped()方法,只有在A完全被B覆盖的时候才会调用这个方法),然后才会调用B的生命周期方法,因此我们应该在A的onPause()方法中对数据进行写入,而不是onStopped())



展开阅读全文
打赏
1
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
1
分享
返回顶部
顶部