Android的四大组件

来源:互联网 发布:国泰君安富易软件 编辑:程序博客网 时间:2024/04/27 18:19

Activity

概念:四大组件之一,对于开发者而言相当于一个入口,对用户而言相当于手机的界面

四种状态:

运行态:界面可见,可以交互

暂停态:界面可见,不可交互

停止态:界面不可见,不可交互

销毁态:程序被杀死

七个方法:onCreate()、onStart()、onResume()、onPuse()、onStop()、onRestart()、onDestory()

点击应用程序的图标:onCreate()àonStart()àonResume()

跳转:

       完全覆盖:onPuse()àonStop()

       半覆盖:onPuse()

点击返回按钮:onPuse()àonStop()àonDestory()

点击Home键:onPuse()àonStop()   再点击图标:onRestart()àonStart()àonResume()

两个方法:

       onSaveInstanceState():手机横竖屏切换时被调用

       onRestoreInstanceState():还原手机状态

手机横竖屏切换时生命周期:

onCreate()àonStart()àonResume()àonSaveInstanceState()àonPuse()àonStop()à

onDestory()àonCreate()àonStart()àonResume()àonRestoreInstanceState()

四种启动模式:

       Standard:默认的

       SingleTop:只有在栈顶的时候才不会新建

       SingleTask:把所有的全部删掉

       SingleInstance:新建一个栈

Service

概念:四大组件之一,是运行在后台的组件

Service分为两种服务:

       本地服务和绑定服务

              当值需要返回给Activity时要用绑定服务,不需要时用本地服务

       本地服务启动方式:

        startService(Intentintent);

       本地服务生命周期:

              onCreate()àonStartCommond()àonDestory()

              当启动服务的activity结束了,服务会正常运行在系统中,而且activity获得不了

service中的数据

       绑定服务启动方式:

        bindService(Intentintent,ServiceConnection ,Binder_auto_create)

       绑定服务生命周期:

              onCreate()àonBind()àonUnbind()àonDestory()

              activity和service相当于一个整体,当启动服务的activity结束了,服务也会结束,

activity可以获得service中的数据

ContentProvider

概念:四大组件之一,把自己的接口暴露给其他应用,使自己的数据能够让其他应用能够使

用,解决进程之间数据共享的问题

URI:统一资源标识符,其中URL是Uri中特殊的一种

URL:统一资源定位器,代表着网络请求地址

URI的规范:

       Content://com.baidu.map/user

URL的规范:

       http://ip:端口号/项目名/资源名

两个方法:

       UriMatcher:这个类是系统的帮助类,主要用来匹配uri的

       ContentUris:帮助类,拼接ID到uri中或者截取uri中ID的值

自定义ContentProvider:

1.      定义类继承ContentProvider实现六个方法:

getType():放回数据的Mime-type值,自定义的情况下一般不会使用该方法,不用

关注太多

onCreate():实例化数据库获得SQLiteDatabase对象

delete()

insert()

query()

update()

2.      在Mainfest文件中配置:

<provider

       android:name:””

       android:authorities=”域名”

/>

Android广播的使用

广播作用:可以把广播比喻成为一个系统级的监听器,可以时刻监听手机的状态发生变化,比如说,手机网络信号强度,手机电池电量,收到短信,收到电话等。

使用广播:

              新建类继承BroadCastReceiver重写onReceiver() 方法

在AndroidManifast.xml注册广播

              静态注册广播

<receiverandroid:name="com.bawei.demo.activity.MyReceiver">

           <intent-filter >

                <actionandroid:name="com.bawei.demo.MY_RECEIVER"/>

           </intent-filter>        

       </receiver>

              不需要手动注销这个广播,不是不能注销,因为我们想一直使用这个广播。静态注册的广播不管应用程序是否启动或者运行,广播依然有效。

 

              动态注册广播通过Java代码

              MyReceiverreceiver=new MyReceiver();

              IntentFilterfilter=new IntentFilter(ACTION);

              registerReceiver(receiver,filter);  //注册广播

              //注销广播

              unregisterReciver(receiver);

       这种广播使用起来比较随便,可是随时注销。

广播的使用场景:不是固定的,根据不同的业务需求来决定。

 

       系统广播不需要我们主动调用某些方法发送广播,系统会自动发送。我们只需要在重写OnReceiver方法,然后实现不同的功能即可。


0 0