Android学习笔记_20140602

来源:互联网 发布:数据库系统组成 编辑:程序博客网 时间:2024/06/05 18:05

1. 按Home和Back的区别
      在Android中,当按下Home键,默认情况下stop前台的actiity,即activity设置成onstop,而不是ondestory。如果再次启动该activity不是调用onCreate,而是调用onSavedInstanceState方法,保持上次Activity的状态则是从onRestart开始->onStart->onResume;

     而当按下back键则不同,back键默认finish前台的activity,即activity的状态为onDestory为止,再次启动该activity则从onCreate开始,不会调用onSavedInstanceState方法。

 

2. 进程和应用程序


应用程序:一组组建(activity service receiver)的集合

一般情况 一个应用程序对应一个进程,关闭掉应用,即关闭所有activity,应用程序的进程是不会被关闭的,仍然在后台长期运行

Android采用进程优先策略,自动管理进程:
a.前台进程: 可以看到进程里的某个界面,可以操作
b.可见进程: 可以看到进程里的某个界面,但不可以操作
c.服务进程: 如果一个应用程序有一个服务在后台运行
d.后台进程: 没有任何服务的进程,打开一个activity之后 按home最小化了
e.空进程:   没有任何活动组件存在的进程。

 

3. Service生命周期

--startService中,service的生命周期为onCreate-->onStart-->onDestroy(由startService开始的service必须调用stopService才能终止service的运作,不调用stopService,那么即使Activity.finish()了Service还是在运作)


--bindService中,service的生命周期为onCreate-->onBind-->【Activity.finish()】-->onUnbind-->onDestroy(由bindService开始的service可以用onunbindService停止service运作,也可以在一个Activity finish以后自动unbindService停止运作)

 

--通过startService开启的服务,不能调用Service的方法,但是Activity销毁,服务也会长期运行于后台;通过bindService开启的服务,可以调用Service的方法,但服务销毁,服务也跟着销毁;可以采用startService开启服务,再绑定服务的方法达到长期运行服务,并且可以调用服务方法。

 

4. 绑定本地服务的流程

a. 在activity调用bindService()去绑定服务
bindService(intent, conn, BIND_AUTO_CREATE);

需要传递一个叫ServiceConnection的接口参数
用来返回两个回调方法 : 当服务被成功绑定/当服务失去连接

b. 在服务里面需要重写方法 onBind() 在服务被绑定的时候调用返回一个IBinder的接口对象(代理人).
代理人必须要实现一个方法,这个方法可以调用到服务的方法

3. 在activity的onServiceConnected得到中间人

4. 调用中间人的方法

5. 中间人调用服务的方法.(中间人继承一个接口的方式进行封装)

------------------------------------------------------------------------------

@ 如果是远程绑定,Service.java文件要改为aidl格式的后缀

 

 

 

0 0
原创粉丝点击