Andriod应用开发知识搜集4

1、Activity的生命周期:

Activity大致会经过如下4个状态:

活动状态:当前Activity位于前台,用户可见,可以获得焦点。

暂停状态:其他Activity位于前台,该Activity依然可见,只是不能获得焦点。

停止状态:该Activity不可见,失去焦点。

销毁状态:该Activity结束,或Activity所在的Dalvik进程被结束。

在Activity的生命周期中,如下方法会被系统回调:

onCreate(Bundle savedStatus): 创建Activity时被回调。该方法只会被调用一次。

onStart(): 启动Activity时被回调,。

onRestart(): 重新启动Activity时被回调。

onResume(): 恢复Activity时被回调,onStart()方法后一定会回调 onResume() 方法。

onPause(): 暂停Activity时被回调,也就是系统准备启动或恢复另一个活动时调用。

onStop(): 停止Activity时被回调。

onDestroy(): 销毁Activity时被调用。该方法只会被调用一次。

开发Activity时可根据需要选择性地覆盖指定方法:

覆盖onCreate(Bundle savedStatus)方法:该方法用于对该Activity执行初始化,如加载布局、绑定事件...

覆盖onPause()方法:可以保存进行状态,保存一些关键数据

覆盖onResume()方法:恢复保存的状态

2、关于Service:

开发者开发Service的步骤与开发Activity的步骤很像,开发Service组件需要先开发一个Service的子类,然后在AndroidManifest.xml文件中配置该Service,配置时可通过<intent-filter.../>元素指定它可被哪些Intent启动。

Service与Activity还有一点相似之处,它们都是从Context派生出来的,因此它们都可调用Context里定义的如getResources()、getContentResolver()等方法。

Android系统本身提供了大量的Service组件,开发者可通过这些系统Service来操作Android系统本身。

Service中也定义了系列生命周期方法:

IBinder onBind(Intent intent): 该方法是Service子类必须实现的方法。该方法返回一个IBinder对象,应用程序可通过该对象与Service组件通信。

void onCreate(): 当该Service第一次被创建后将立即回调该方法。

void onDestroy(): 当该Service被关闭之前将会回调该方法。

void onStartCommand(Intent intent, int flags, int startId): 该方法的早期版本是void onStart(Intent intent, int startId), 每次客户端调用startService(Intent)方法启动该Service时都会回调该方法。

boolean onUnbind(Intent intent): 当该Service上绑定的所有客户端都断开连接时将会回调该方法。

调用Context里定义的startService()、stopService()方法即可启动、关闭Service。

每当Service被创建时会回调onCreate方法,每次Service被启动时都会回调onStart方法——多次启动一个已有的Service组件将不会再回调onCreate方法,但每次启动时都会回调onStartCommand()方法。

如果希望Service组件做某些事情,那么只要在 onCreate() 或 onStartCommand() 方法中定义相关业务代码即可。

Android系统中运行Service有如下两种方式:

通过Context的 startService() 方法:通过该方法启用Service,访问者与Service之间没有关联,即使访问者退出了,Service仍然运行,也无法进行通信、数据交换。

通过Context的 bindService() 方法:使用该方法启用Service,访问者与Service绑定在了一起,访问者一旦退出,Service也就终止,使用unbindService()方法关闭Service,可以进行方法调用或数据交换。

bindService(Intent service, ServiceConnection conn, int flags)的三个参数的解释如下:

service:该参数通过Intent指定要启动的Service

conn:该参数是一个ServiceConnection对象,该对象用于监听访问者与Service之间的连接情况。当访问者与Service之间连接成功时将回调该ServiceConnection对象的 onServiceConnected(ComponentName name, IBinder service)方法,onBind(Intent intent)方法所返回的IBinder对象将会传给service参数,这样访问者就可通过该IBindler与被绑定Service进行的通信;当Service所在的宿主进程由于异常中止或由于其他原因终止,导致该Service与访问者之间断开连接时回调该ServiceConnection对象的onServiceDisconnected(ComponentName name)方法(当调用者主动通过unBindService()方法断开与Service的连接时,ServiceConnection对象的onServiceDisconnected(ComponentName name)方法并不会被调用)

flags:指定绑定时是否自动创建Service(如果Service还未创建)。该参数可指定为0(不自动创建)或BIND_AUTO_CREATE(自动创建)

时间: 2024-09-27 06:48:57

Andriod应用开发知识搜集4的相关文章

Andriod应用开发知识搜集2

1.常用五种布局: LinearLayout.RelativeLayout.FrameLayout.AbsoluteLayout.TableLayout 线性布局          相对布局           帧布局             绝对布局              表格布局 开发中主要用线性布局和相对布局.           表格布局用于计算机布局等!           帧布局主要用于页面加载,霓虹灯等           绝对布局不怎么用 2.在TextView中设置该控件的

Andriod应用开发知识搜集3

6.Configuration类: Configuration类专门用于描述手机设备上的配置信息,这些配置信息既包括用户特定的配置项,也包括系统的动态设备配置. 程序可调用Activity的如下方法来获取系统的Configuration对象: Configuration cfg = getResources().getConfiguration(); 此后,可以调用Configuration对象的属性来获取设备状态.

前端开发知识学习概要

前端开发工具 编辑器 editPlus sublime 浏览器: Chrome Safari Firebox IE 插件:firebug chrome: inspect element html 组成结构 1 <!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前,不是 HTML 标签: 2 它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令, 浏览器读取. 3 <html> 4 <head> 5 描述页面

微信应用号开发知识贮备之Webpack实战

天地会珠海分舵注:随着微信应用号的呼之欲出,相信新一轮的APP变革即将发生.作为行业内人士,我们很应该去拥抱这个趋势.这段时间在忙完工作之余准备储备一下这方面的知识点,以免将来被微信应用号的浪潮所淹没 通过上一篇<微信应用号开发知识贮备之altjs官方实例初探>,我们已经将altjs的官方实例所用到的依赖包升到最新,且修改的源码相应的部分来适应最新的依赖. 今天本人的目标是将实例中的打包工具从browserify切换到当前更火的更接近nodejs编写习惯的weback上来. 既然要用wepac

前端开发知识体系部

1. 前言 本文把整个web前端开发所需要的知识都之中在一个视图中,形成一个完整的web前端知识体系,目的是想要颠覆人们对于前端只有三大块(html.css.js)的认识--做web前端需要的比这三大块要多得多. 在看内容之前,先看一下这个知识框架的预览图.图太大不好展示,看不清除,可在此下载清晰版:http://pan.baidu.com/s/1hqIUvUc (内有整个知识体系的图片和xmind文件) 2. 分类 所有知识框架,那肯定是一个结构型的展现,就是一棵树.web前端的知识点非常多,

IntelliJ IDEA教程之Andriod项目开发篇(全集)

此教程图文讲解使用IntelliJ IDEA开发Andriod项目,人门篇,希望对初学者有所帮助! IntelliJ IDEA教程之Andriod项目开发篇:准备工作 IntelliJ IDEA教程之Andriod项目开发篇: 新项目设置 IntelliJ IDEA教程之Andriod项目开发篇:现有项目导入设置 IntelliJ IDEA教程之Andriod项目开发篇:理解项目结构 IntelliJ IDEA教程之Andriod项目开发篇:构建应用程序配置 IntelliJ IDEA教程之An

GIS应急通--andriod端开发

移动端andriod手机开发版本,开发语言是java,开发平台是myeclise.eclise,后台数据库是oracel,开发接口是arcgis api for andriod,提供以下的功能: 1.地图定位跟踪GPS: 2.事件列表: 3.危险隐患管理: 4.文件审批: 5.应急联络:   备注:更多的精彩内容请关注本人的淘宝店http://shop116521643.taobao.com

java web的开发 知识要点

近期闲下来时写的一个有关 java web的开发 的 常用架构 的总结,用于初 学 者或团队新人培训. Java开发初步.ppt SSH  为 struts+spring+hibernate 的一个集成框架,是目前较流行的一种JAVA Web应用程序开源框架 SSI   为 Strtus2.Spring.iBatis java web的开发 知识要点

JavaScript 面向对象开发知识基础总结

JavaScript 面向对象开发知识基础总结 最近看了两本书,书中有些内容对自己还是很新的,有些内容是之前自己理解不够深的,所以拿出来总结一下,这两本书的名字如下: JavaScript 面向对象精要 JavaScript 启示录 如果对于 JavaScript 面向对象编程理解不够深的话,第一本书还是强烈推荐的.第二本书比较适合初中级的开发者阅读.对各种知识点都有代码示例.内容中规中矩. 1.JavaScript 中的变量类型和类型检测 C#和Java等编程语言用栈存储原始类型,用堆存储引用