Android中的四大基本组件及简单使用说明
2012-11-20 22:15
579 查看
Android应用开发四大基本组件为:Activity、Service、Broadcast Receiver以及Content
Provider。这四大组件除了Broadcast Receivers是在运行时创建外,其他都需要在Manifest中声明。比如Activity为<activity>,Service为<service>,Broadcast
Receiver为<receiver>,Content Provider为<provider>。
一、关于Activity:这就必须讲到Intent了,它可以实现从一个Activity跳转到另一个Activity,它有两种(事实上不止两种,但是这两种比较重要)方式:
(1)
Intent intent = new Intent(activity1.this, activity2);
startActivity(intent);
(2)
Intent intent = new Intent();
intent.setAction(xx);
intent.setType(yy);
intent.setCategory(zz);
startActivity(intent);
以上的intent中set的内容对应到Manifest文件中<intent-filter></intent-filter>之间的内容,比如setAction对应到<action>里面的内容。
二、关于Service。它分两步,第一步是在Manifest文件中声明,第二步是extends Service。同时Service分为本地Service以及远程Service。
(1)本地Service:启动方法为:startService(Intent)。
(2)远程Service。
它用bindService方法启动,该方法会连接到一个正在运行的Service,在必要时创建Service并在连接后返回true。bindService会导致调用onCreate()方法,随后会调用onBind()函数,该函数会返回用于跟Service交互的通信通道(实现IBinder接口的类的实例)。简单举例如下:
Public class SimpleService extends Service
{
Public class SimpleBinder extends Binder
{
SimpleService getService()
{
Return SimpleService.this;
}
}
Private final IBinder binder = new SimpleBinder();
Public IBinder onBind(Intent intent)
{
Return binder;
}
Public void onCreate(){}
Public void onDestroy(){}
}
然后在具体的Activity的onCreate(Bundle)方法中包含下面的代码:
ServiceConnection sc = new ServiceConnection()
{
Public void onServiceConnected(ComponentName className, IBinder service)
{
SimpleService ss = ((SimpleService.SimpleBinder)service).getService();
}
Public void onServiceDisconnected(ComponentName className)
{
}
}
bindService(new Intent(SImpleActivity.this, SimpleService.class), sc. Context.BIND_AUTO_CREATE);
以上的过程简述为:onBind中返回的binder->继承Binder的类->类中定义的方法
三、关于Broadcast Receiver:具体的方法简单说明如下:首先是定义一个类继承BroadcastReceiver类;然后重载其onReceived()方法,该方法指的是接收到广播后的处理。最后就是在某个Activity类中通过sendBroadcast(intent)指到刚才定义的类中。简单举例如下:
Public class MyBroadcastReceiver extends BroadcastReceiver
{
Public void onReceive(Context context, Intent intent){
//具体处理
}
}
然后就是在某一情况下触发该事件:
Btn.setOnClickListener(new OnClickListener(){
Public void onClick(View v){
Intent it = new Intent(NEW_LISRFORM_DETECTED);
sendBroadcast(it);
}
}
Provider。这四大组件除了Broadcast Receivers是在运行时创建外,其他都需要在Manifest中声明。比如Activity为<activity>,Service为<service>,Broadcast
Receiver为<receiver>,Content Provider为<provider>。
一、关于Activity:这就必须讲到Intent了,它可以实现从一个Activity跳转到另一个Activity,它有两种(事实上不止两种,但是这两种比较重要)方式:
(1)
Intent intent = new Intent(activity1.this, activity2);
startActivity(intent);
(2)
Intent intent = new Intent();
intent.setAction(xx);
intent.setType(yy);
intent.setCategory(zz);
startActivity(intent);
以上的intent中set的内容对应到Manifest文件中<intent-filter></intent-filter>之间的内容,比如setAction对应到<action>里面的内容。
二、关于Service。它分两步,第一步是在Manifest文件中声明,第二步是extends Service。同时Service分为本地Service以及远程Service。
(1)本地Service:启动方法为:startService(Intent)。
(2)远程Service。
它用bindService方法启动,该方法会连接到一个正在运行的Service,在必要时创建Service并在连接后返回true。bindService会导致调用onCreate()方法,随后会调用onBind()函数,该函数会返回用于跟Service交互的通信通道(实现IBinder接口的类的实例)。简单举例如下:
Public class SimpleService extends Service
{
Public class SimpleBinder extends Binder
{
SimpleService getService()
{
Return SimpleService.this;
}
}
Private final IBinder binder = new SimpleBinder();
Public IBinder onBind(Intent intent)
{
Return binder;
}
Public void onCreate(){}
Public void onDestroy(){}
}
然后在具体的Activity的onCreate(Bundle)方法中包含下面的代码:
ServiceConnection sc = new ServiceConnection()
{
Public void onServiceConnected(ComponentName className, IBinder service)
{
SimpleService ss = ((SimpleService.SimpleBinder)service).getService();
}
Public void onServiceDisconnected(ComponentName className)
{
}
}
bindService(new Intent(SImpleActivity.this, SimpleService.class), sc. Context.BIND_AUTO_CREATE);
以上的过程简述为:onBind中返回的binder->继承Binder的类->类中定义的方法
三、关于Broadcast Receiver:具体的方法简单说明如下:首先是定义一个类继承BroadcastReceiver类;然后重载其onReceived()方法,该方法指的是接收到广播后的处理。最后就是在某个Activity类中通过sendBroadcast(intent)指到刚才定义的类中。简单举例如下:
Public class MyBroadcastReceiver extends BroadcastReceiver
{
Public void onReceive(Context context, Intent intent){
//具体处理
}
}
然后就是在某一情况下触发该事件:
Btn.setOnClickListener(new OnClickListener(){
Public void onClick(View v){
Intent it = new Intent(NEW_LISRFORM_DETECTED);
sendBroadcast(it);
}
}
相关文章推荐
- Android的四大基本组件的简单介绍
- Android实训案例(六)——四大组件之一BroadcastReceiver的基本使用,拨号,短信,SD卡,开机,应用安装卸载监听
- Android实训案例(六)——四大组件之一BroadcastReceiver的基本使用,拨号,短信,SD卡,开机,应用安装卸载监听
- Android实训案例(六)——四大组件之一BroadcastReceiver的基本使用,拨号,短信,SD卡,开机,应用安装卸载监听
- Android 四大组件之Service的基本使用
- Android实训案例(六)——四大组件之一BroadcastReceiver的基本使用,拨号,短信,SD卡,开机,应用安装卸载监听
- Android实训案例(六)——四大组件之一BroadcastReceiver的基本使用,拨号,短信,SD卡,开机,应用安装卸载监听
- android四大组件---Service的简单使用
- Android四大基本组件介绍与生命周期
- Android四大基本组件介绍与生命周期
- android使用ComponentName组件简单示例
- Android四大组件之广播的使用
- Android四大基本组件介绍与生命周期
- Android四大基本组件之 Service
- 关于Android四大基本组件介绍与生命周期(转)
- Android四大基本组件(1)之Activity与BroadcastReceive广播接收器
- Android四大基本组件介绍与生命周期
- Android四大基本组件介绍与生命周期
- Android greenDAO 数据库 简单学习之基本使用
- Android四大基本组件介绍与生命周期