您的位置:首页 > 移动开发 > Android开发

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);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息