android四大组件
来源:互联网 发布:空军一号 知乎 编辑:程序博客网 时间:2024/05/22 03:36
1.actiity
在android中,1个avtivity通常代表一个界面,通过setcontent来显示指定的控件,和用户进行交互。activity之间通过intent通信,activity有7大生命周期。
oncreat onstart onresume onpause onstop ondestory onrestart
一个界面跳其他界面:经过A的oncreat onstart onresume onpause ,此时B覆盖A界面,调用B的oncreat onstart onresume(此时如果B是对话框或者透明的就不会调用A的onstop),反之,A调用onstop,然后Bonpause,在到A的onrestart onstart onresume 然后调用B的onstop ondestory,最后A的onpause onstop ondestory
2.service
后台的服务,不提供页面的呈现,有绑定的服务和不绑定的服务。
不绑定的服务(如果不指定service所在的线程,默认是在UI线程中,且service里面不可以执行耗时操作,包括网络请求,拷贝数据库,大文件。可以指定service所在的进程,在清单中设置android:name=“包名+类名”)。
不绑定的service生命周期:oncreat onstart ondestory——只能手动的添加开始和终止的代码 startservice和stopservice
绑定的service生命周期:oncreat onbind onunbind ondestory——通过bindservice来创建服务
3broadcastreceiver广播接收者
Broadcast是一种广泛运用的在应用程序之间传输信息的机制,Android中我们要发送的广播内容是一个Intent。这个Intent中可以携带我们要传送的数据。Android中要接受广播中的内容则是通过注册一个BroadCastReceiver来接收的。只有发送广播的action和接收广播的action相同,接受者才能接受这个广播。
作用:1.实现了不同的程序之间的数据传输与共享,因为只要是和发送广播的action相同的接受者都能接受这个广播。典型的应用就是android自带的短信,电话等等广播,只要我们实现了他们的action的广播,那么我们就能接收他们的数据了,以便做出一些处理。比如说拦截系统短信,拦截骚扰电话等等
分为:动态注册和在xml中指定(静态)
之间的区别就是作用的范围不同,程序动态注册的接收者只在程序运行过程中有效,而在xml注册的接收者不管你的程序有没有启动有会起作用。
1.动态注册广播不是常驻型广播,也就是说广播跟随activity的生命周期。注意: 在activity结束前,移除广播接收器。
静态注册是常驻型,也就是说当应用程序关闭后,如果有信息广播来,程序也会被系统调用自动运行。
动态注册:
例子1:
private
ReceiveBroadCast receiveBroadCast;
//类中先拿到广播实例
@Override
public
void
onClick(View view)
{
// 注册广播接收
receiveBroadCast =
new
ReceiveBroadCast();
IntentFilter filter =
new
IntentFilter();
filter.addAction(flag);
//只有持有相同的action的接受者才能接收此广播
registerReceiver(receiveBroadCast, filter);
}
}
public
class
ReceiveBroadCast extends BroadcastReceiver
{
@Override
public
void
onReceive(Context context, Intent intent)
{
//得到广播中得到的数据,并显示出来
String message = intent.getStringExtra(
"data"
);
txtShow.setText(message);
}
Myservice service1=new Myservice();
例3:广播传值
然后在AndroidManifest中的<activity></activity>节点之后我们添加一下代码:
<receiver android:name=
"com.qlf.broadCast.broadCastReceiveByXml"
>
<intent-filter>
<action android:name=
"com.qlf.broadCastFlag"
>
</action>
</intent-filter>
</receiver>
receiver中的android:name就是我们在程序中的那个接收广播的类。下面的intent-filter和我们讲到的功能类似,而这个action就是上面的那个flag啦。
4contentprovider内容提供者——相当于库
- Android应用程序四大组件
- Android应用程序四大组件
- Android应用程序四大组件
- android 四大组件
- Android应用程序四大组件
- android应用程序四大组件
- Android四大组件
- Android应用程序四大组件
- Android四大组件
- Android四大组件
- android之四大组件
- Android四大组件介绍
- android四大组件
- Android应用程序四大组件
- Android开发四大组件
- Android四大组件
- Android应用程序四大组件
- android四大组件笔记
- Android中对ListView、RecycleView里面的数据进行排序方法总结
- WordPress根据页面名称获取页面id方法
- HDU2181-哈密顿绕行世界问题
- Servlet 3之异步处理特性
- Win7系统电脑怎么设置防火墙开放特定端口让其他电脑访问本机
- android四大组件
- sleep()、wait()、yield()、join()方法 解析
- Jetty Continuation基本原理及实现
- 关于JPA中对于一对多双向关联下对象迭代产生占内存溢出问题的解决
- 电机参数之齿槽转矩
- Jetty Continuation源码学习
- LeetCode OJ:Two sum
- 我也谈谈guice, 简单就是美
- 支付宝即时到账接口