本站已关停,现有内容仅作科研等非赢利用途使用。特此声明。
查看: 684|回复: 0
打印 上一主题 下一主题

Android菜鸟饭团#Udacity Android#第八课 活动笔记

[复制链接]
跳转到指定楼层
1#
发表于 2015-6-4 00:24:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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活动一样,我们依然是任性的一个子都不要,并且还在周六的分享中提供盒饭和不定期的惊喜小礼物呦~所以快来加入我们吧,为你的大神梦想迈出第一步。
把你的个人信息和申请理由快快发送到android@chuang1.net,前来加入我们吧

ChinaGDG.com
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表