码迷,mamicode.com
首页 > 其他好文 > 详细

Andriod应用开发知识搜集4

时间:2015-09-01 18:16:56      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:

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(自动创建)

Andriod应用开发知识搜集4

标签:

原文地址:http://www.cnblogs.com/sandyclaire1990/p/4776460.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!