android基础学习008_android 各大组件基本知识

来源:互联网 发布:mysql.sock 不存在 编辑:程序博客网 时间:2024/06/07 07:50

Activity之间的跳转:

1、  显示意图跳转:直接指定目标activity的包名和类名,效率高

2、  隐式意图跳转:通过activity在清单文件中定义的intent-filter的action和data,利用这两个action和data来创建意图对象(就是通过指定action和data),效率低

 

//补充:

一个activity如果需要隐式跳转,那么必须在清单文件中添加以下子节点intent-filter

<activityandroid:name="com.liuwei.secondactivity.SecondActivity">

<intent-filter>

          <actionandroid:name="com.test.sa"/>

          <dataandroid:scheme="test"android:mimeType="text/username"/>

          <categoryandroid:name="android.intent.category.DEFAULT"></category>

     </intent-filter>

</activity>

a). 在利用隐式跳转创建intent意图对象并设置相关项时必须和清单文件中设置的 intent-filter意图过滤器设置的项一一匹配(必须一一匹配)

b). 在intent-filter中指定的data可以作为activity之间数据的传递(非常有用)

c). 设置intent时如果不去匹配category,系统自动匹配默认的category(也就是说如果activity的category配置的为default,则系统会自动添加默认的category)

 

显示和隐式意图跳转的应用场景:

1、  显示意图:启动同一个应用中的activity

2、  隐式意图:启动不同应用中的activity

3、  在启动效率上,隐式远远低于显示

4、  如果android系统中有多个activity应用和你意图设置的action匹配,那么在系统启动activity时,会弹出一个对话框,里面包含所有匹配的activity

 



Service

Service的启动和activity的启动方法是一样的,也分显示隐式,显示的话没有必要在清单文件中配置intent-filter,隐式必须在清单文件中配置intent-filter

 

Service的生命周期 ---

onCreate/onStartCommand/onDestroy 简单就这三个方法

@Override

    public void onCreate() {

        // TODO Auto-generated method stub

        super.onCreate();

    }

 

    @Override

    public int onStartCommand(Intentintent, intflags,intstartId) {

        // TODO Auto-generated method stub

        return super.onStartCommand(intent,flags, startId);

    }

 

    @Override

    public void onDestroy() {

        // TODO Auto-generated method stub

        super.onDestroy();

    }

Service的开启方式

startService:

l  该方法启动的服务所在的进程属于服务进程

l  Activity一旦启动服务,服务就跟activity一点关系也没有

bindService:

l  该方法启动的服务所在进程不属于服务进程

l  Activity与服务建立连接,activity一旦死亡,服务也死亡

服务的混合调用(就是先bind服务然后start服务)

l  先开始,在绑定,先解绑,在停止

 

 

BroastcastReceiver

 

 

Application

Application和Activity,Service一样,是android框架的一个系统组件


0 0
原创粉丝点击