Android菜鸟饭团#Udacity Android#第八课 活动笔记 这节课我们要学习: 处理activity Activity生命周期的概念 实现数据库存储 介绍使用content provider抓取数据 如何使用一个持久的数据存储 在网速非常慢或者无法连接的时候,你的应用依然能够给使用者提供不间断的相应快的应用体验
先从Activty讲起 根据这幅图简单的展示了Activity的几个方法的调用。 从图中我们可以看见,当Activity被创建。 先执行onCreate方法然后依次是onStart,onResume, 之后activity开始运行,然后onPause方法,onStop。
如果该activity是不可见状态,用户要重新倒回,执行onRestart,然后从onStart开始执行。
如果activity在不可见状态而且系统需要用大量的内存去处理另一个app,系统会根据activity的优先级,释放优先级最低的activity,当前这个activity可能会被自动释放,如果被释放的activity用户又要打开,就重新调用onCreate方法,因为这个activity已经被释放了。 如果activity不可见,然后要被系统清除,执行onDestory方法,执行过onDestory方法后该app处于停止的状态,如果要打开又要重新调用onCreate方法。
Activity整个生命周期的4种状态、7个重要方法和3个嵌套循环 4种状态: 1.活动(Active/Running)状态
当Activity运行在屏幕前台(处于当前任务活动栈的最上面),此时它获取了焦点能响应用户的操作,属于运行状态,同一个时刻只会有一个Activity 处于活动(Active)或运行(Running)状态
2.暂停(Paused)状态
当Activity失去焦点但仍对用户可见(如在它之上有另一个透明的Activity或Toast、AlertDialog等弹出窗口时)它处于暂停状态。暂停的Activity仍然是存活状态(它保留着所有的状态和成员信息并保持和窗口管理器的连接),但是当系统内存极小时可以被系统杀掉
3.停止(Stopped)状态
完全被另一个Activity遮挡时处于停止状态,它仍然保留着所有的状态和成员信息。只是对用户不可见,当其他地方需要内存时它往往被系统杀掉
4.非活动(Dead)状态
Activity 尚未被启动、已经被手动终止,或已经被系统回收时处于非活动的状态,要手动终止Activity,可以在程序中调用"finish"方法。如果是(按根据内存不足时的回收规则)被系统回收,可能是因为内存不足了,内存不足时,Dalvak 虚拟机会根据其内存回收规则来回收内存:
1. 先回收与其他Activity 或Service/Intent Receiver 无关的进程(即优先回收独立的Activity)因此建议,我们的一些(耗时)后台操作,最好是作成Service的形式
2.不可见(处于Stopped状态的)Activity
3.Service进程(除非真的没有内存可用时会被销毁)
4.非活动的可见的(Paused状态的)Activity
5.当前正在运行(Active/Running状态的)Activity
7个方法: 1.onCreate方法,用来设置一些静态的配置,比如:加载布局文件设置应用的标题,为按钮添加监听器等。 2.onStart方法,当用户看到应用界面时候执行它。 3.onResume方法,当Activity可操作时,比如界面按钮可点击可使用时调用。 4.onPause方法在执行一个Activity时,有另一个Activity又被建立,先调用之前那个Activity的onPause方法。比如:你正在玩手机游戏,突然来了一通电话,这时游戏被暂停,游戏的onPause方法被调用。 5.onStop方法,当前Activty被停止,新的Activity把它遮住了,调用onStop 6.onRestart方法,打完电话,返回游戏,调用游戏的onRestart,释放onPause存储的临时数据 7.onDestory方法,用来销毁Activty,退出Activty。用户退出Activty,先调用onPause方法,然后调用onStop方法,然后调用onDestory方法,Activity结束。
3个嵌套循环 1.Activity完整的生命周期:从第一次调用onCreate()开始直到调用onDestroy()结束
2.Activity的可视生命周期:从调用onStart()到相应的调用onStop()在这两个方法之间,可以保持显示Activity所需要的资源。如在onStart()中注册一个广播接收者监听影响你的UI的改变,在onStop() 中注销。
3.Activity的前台生命周期:从调用onResume()到相应的调用onPause()。
【用户体验的需求】 1. App越快,使用的人越多 2. 节省电池寿命 3. 节省数据流量 4. 当运行另外一个WEB服务,能够降低服务器负载或带宽 5. 在一个网络不稳定的地带,有较强的抵抗恶劣的网络状况的能力 6. 支持更多的地方的天气服务
这节课主要要求掌握Activity的4个状态、7种方法、3种循环,关于用户体验下节课我们通过SQlite数据库了来实现。 谢谢观看。
每一个技术小白都有一个成为大神的梦想,现在Android菜鸟饭团就给你这个成就梦想的机会。我们提供最新的Android技术教学,只要你又耐心和毅力就一定会在这里有所收获。 Android菜鸟饭团由南阳GDG组织发起,秉承着开放、分享、创新的原则,希望通过GDG社区的力量能够给更多的想要学习Android开发技术的小白们创造一个学习,交流,分享的环境。同往常的GDG活动一样,我们依然是任性的一个子都不要,并且还在周六的分享中提供盒饭和不定期的惊喜小礼物呦~所以快来加入我们吧,为你的大神梦想迈出第一步。
|