Android基础术语

Android术语包括Context、Ativity、Intent、Service这四种重要术语。

 

 

     4.1         Context(中央控制中心)

 

作用:管理应用程序特定的配置细节,以及应用程序范围的操作和数据,使用Context来访问设置资源可以在多个Activity实例中实现共享。

 

获取:Context context = getApplicationContext();

 

使用:  1. 通过getResources()方法来获取资源实例

 

2.  访问应用程序首选项,经常用来存放配置

 

3.  访问其他应用程序的功能

 

1)运行Activity实例

 

2)获取应用程序所带组件(asset)

 

3)获取一个系统服务

 

4)管理私有的应用程序文件、目录和数据库

 

5)检查和使用应用程序权限

 

注意:Activity继承自Context,所以有时也可以替代对应应用程序Context的显示获取。但是,并不是所有的情况下都可以使用ActivityContext的,有可能会导致内存溢出。例如:我们经常使用Context传递参数的时候,都是用Activity的this实例来传递,这种情况传递过多会出现内存溢出,解决方法就是使用getApplicationContext()来获取Context传递过去。

 

 

 

     4.2         Activity

 

作用:任何一个Android应用程序的核心组成部分

 

生命周期:并不是每个Activity都是在当前活动可见的,每个应用程序在被用户使用的过程中,只有一个Activity是当前用户可见并可操作的(即获取到焦点的)。而一旦开启另一个活动Activity,那么之前的那个Activity就会被Android操作系统自动处理,压入Activity栈中。而这个新压入的栈完成工作后,则会被从栈顶移除。而之前的Activity又会回到栈顶,成为活动Activity。

 

图4.2.1 Activity生命周期内的一些列回调

 

回调函数的调用时机和调用目的:

回调函数 描述 调用时机 调用目的
onCreate() 初始化静态

Activity

一个Activity首次运行的时候调用 仅有一个参数,Bundle对象。对于首次运行的Activity来说为空。如因内存原因被终止的Activity则Bundle包含之前的Activity状态信息。用来尽心数据绑定。
onResume() 初始化和接受Activity数据 Activity为前台进程的时候调用 获取Activity运行所需资源。适合于启动音频、视频和动画。
onPause() 停止、保存和释放Activity数据 Activity接受到在栈中被下移的通知 终止在onResume中播放的所有音频、视频和动画。同时,必须接触某些资源,例如数据库。保存未提交的数据,这是Activity在后台的最后一个机会能够做这些事情。

 

被销毁:   1.  在低内存下,Android会终止任何非活动Activity

2.  onPause()被调用,则onStop()和onDestory()不会被调用

3.  onPause()释放越多的资源,转入后台的Activity被终止可能行越小

4.  终止Activity不会从栈中移除,而是将其销毁钱状态存入Bundle。前提为Activity实现了它,并且使用了onSaveInstanceState()方法保存自定义数据。

 

避免被销毁:1. 使用onSaveInstanceState()将Acitvity状态存储至Bundle对象

注释:该方法不一定会生效,所以对于关键数据最好在onPause()中调用。至于返回这个状态,则只需要利用onRestoreInstanceState()方法调用Bundle中的信息即可。

2.  在onDestory()方法中保存数据

注释:Activity自然完成了它的生命周期,或者由于资源占用的原因被Android系统终止的时候调用onDestory(),这时候可以将未保存的数据保存下来。

Intent跳转:1. 只出现一次的跳转,例如启动动画

注释:startActivity()和finish()方法

2.  暂时性跳转,只是为了等待一个结果

注释:startActivityForResult()和onActivityResult()方法

跳转实现: 1.  使用类名运行

注释:显示调用Intent,譬如:

startActivity(newIntent

(getApplicationContext(),TestActivity.class))

2.  使用Action

注释:Uri number = Uri.parse(tel:11111);

Intentintent = new Intent(Intent.ACTION_DIAL, number);

startActivity(dial);

上述是调用系统电话功能

3.  传递信息

注释:使用Intent中的putExtra方法

注意:Android约定用于附加信息的键名必须包含一个包前缀

服务:      1.  没有用户界面的Activity

服务作用: 1.  天气、邮件等社交网络类。

2.  照片和多媒体应用,用于数据的同步

3.  视频编辑应用,添加繁琐的操作到服务,避免性能影响

4.  新闻预载入,提高性能

5.  经验规则:某个任务需要一个辅助线程,但可能会影响应用程序的响应性和性能,这个时候可以考虑使用服务来处理这一任务。

     4.3         小结

Activity的一些重要概念。

标签