第三章:Android游戏开发之交互式通讯

1.安卓应用程序的基本组件:

  Activity组件,Service,BroadcastReceiver和ContentProvider

  Activity:

    可视界面(运行态,暂停态(仍然保存着其状态和成员等信息,但是当系统资源非常匮乏的时候,会被结束掉以获得更多的资源),停止态),有两种显示内容的方式,第一种是通过xml配置文件来显示,第二种通过继承自View类的方式来显示。第一种可以定义一些布局的方式。setContentView(R.layout.main);第二种 setContentView(viewc);

  Service:

    Service是在后台运行的一种android组件,Service一般由Activity 或者其他的Context对象来启动,当Service启动之后,即使前台的Activity生命周期已经结束,Service仍然会继续运行,直到自己的生命周期结束,每个Service都应该在AndroidManifest.xml中进行声明,Service启动方式有两种。对应的生命周期也各不相同。

    通过startService方式启动,当系统调用startService的时候,如果该Service还未启动,则依次调用onCreate方法和onStart方法。当其他Context对象调用stopService方法,Service调用自身的stopSelf方法或者stopService方法时,才会停止Service的运行。

    通过bindService方法启动。如果该Service未启动,则会调用其onCreate方法完成初始化操作。然后将该Service和Context对象进行绑定,当被绑定的对象销毁的时候,该service相应的被销毁。

    无论是通过哪种方式启动的,都可以进行绑定。

  Broadcast Receiver:

    同service一样,也是在后台运行。负责接收广播消息,并对该消息进行处理。应用程序如果需要响应该广播,应该注册对应的BroadcastReceiver对象。

    BroadcastReceiver发布广播的方式:首先创建一个Intent对象,调用Context.sendBroadcast,Context.sendOrderedBroadcast,Context.sendStickyBroadcast 方法将该intent对象广播出去。使用sendBroadcast或者sendStickyBroadcast发送出去的Intent,所有满足条件的BroadcastReceiver都会执行onReceiver方法,而执行onReceiver的顺序是没有保证的。而通过sendOrderedBroadcast发送出去的,会根据注册时的IntentFilter设置优先级的顺序来执行的。sendStickyBroadcast,发送之后intent在发送后会一直存在,

    BroadcastReceiver接受广播的方式,通过intentFilter来进行过滤,BroadcastReceiver只有一个回调方法,onReceive。注册BroadcastReceiver的方法有两种,在AndroidManifest.xml中注册,注册信息包括在<receiver></receiver>标签中,并在<intent-filter>设置过滤规则;在代码中创建IntentFilter对象,然后用Context.registerReceiver和Context.unregisterReceiver 方法注册和取消注册。

  Content Provider:

    ContentProvider 主要用于不同程序之间的数据共享,

.

posted @ 2012-07-23 11:35  庸蛹  阅读(315)  评论(0编辑  收藏  举报