android应用的基本组件介绍:
?
1、Activity和View组件:
??? Activity是android应用中负责与用户交互的组件---基本上和Swing中的JFrame控件是一致的,他们的不同点在于:JFrame本身可以设置布局管理器,不断的像JFrame中添加组件,而Activity只能通过setContentView(VIew)来显示指定的组件。
??? View是所有UI控件的基类,View控件就和他的意思一样,就是用户看到的实实在在的部分,但是VIew组件需要放在容器组件中才能显示,或者利用Activity组件来显示,此时需要调用Activity的setContentView(View)方。
??? 例如:
????? LinearLayout Layout= new LinearLayout(this);
?????
??????//设置该ACtivity显示的Layout
?
???? ?super.setContentView(Layout)
?
???同样,setContentView也可以接受一个View的ID作为参数传递;
????
?????super.setContetView(R.Layout.main);
?
?
Activity为安卓提供了可视化的界面,如果你的安卓应用需要多个页面,那么你也就需要多个Activity,这些Activity形成一个堆栈,当前活动的Activity位于最顶端;
?
Activity包含了setTheme(in resid) 方法来设置其窗口的风格,我可以通过改变theme来达到 不显示标题、以对话框的形式显示窗口的目的!
?
?需要注意的是!
?setTheme()方法好像必须在super.onCreate(savedInstanceState)之前调用才管用!
?
?
2、Service
?
????? Service与Activity的地位是并列的,他代表一个单独的Android组件,进一步说,Service通常在后台运行,不需要与用户交互,所以也没有图形用户界面,
????
?????? 与Activity需要继承Activity基类一样,Service也需要继承Service基类,他的有他自己的声明周期,Service的主要任务是提供后台服务,和监听其他组件的运行状态。
?
?
3、BroadcastReceiver
?
???????? BroadcastReceiver是安卓中的另一个重要组件,顾名思义,代表广播接收器。从代码实现功能的角度看,他和监听器是一样的,但是不同的是,监听器是监听的事件源是程序中的对象,而BroadcastReceiver监听的事件源是android中的其他应用组件,
????? 它的用法很简单,只需要实现BroadcastReceiver子类,然后重写onReceiver(Content content, Intent intent)方法就可以实现接收广播消息了。
?
4、Contentprovider
?
??????? Contentprovider可以说是android为了跨应用间的数据交互提供了一个标准,当用户实现自己的Contentprovider时需要实现几个抽样方法:
?
??????? insert(Uri,ContentVlaues);向Contentprovider中插入数据;
??????? delete(Uri,ContentVlaues);删除Contentprovider中的数据;
??????? update(Uri,ContentVlaues,String,String[])更新tentprovider中指定的数据;
?????? ??
?????????? query(Uri,String[],?String,String[],String),从 Contentprovider查询数据。
?
?
5、Intent和IntentFilter
?
????????????? 严格的说Intent并不是android中的组件,但是他对于android的意义又是非常重大的,当Android程序运行需要连接不同的组件是就需要Intent了,Intent可以启动一个Activity,当然也可以启动一个Service,还可以发送一条广播信息出发 BroadcastReceiver。可以说他是这三个组件的载体。
????????? 启动不同组件的不同方法,
?
?
????????? Activity??? startActivity
????????? Service???? sartService
??当需要触发一个 BroadcastReceiver时,可以调用Content的send Broadcast(Intent intent)方法,sendStickBroadcast(Intent intent),sendOrderBroadcast(Intent intent)方法, ? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?