Android的主要组件
(一)Activity(活动)
作用:提供可视化用户界面
只能通过setContentView(View)来显示指定组件
View组件是所有UI控件、容器控件的基类,View组件就是android应用中用户实实在在看到的部分。但View组件需要放到容器组件中,或者使用Activity将它显示出来。
如果需要通过某个Activity把指定View显示出来,调用Activity的setContentView()方法即可。
每个View对象控制着窗口内的一个矩形空间; View是一种层次化结构,Parent View中的布局属性会被子View继承; 位于View层次关系最底层的子View对象所代表的矩形空间就是跟用户进行交互的地方。
Activity的生命状态依次为:
onCreate
onStart
onRestart
onResume
onPause
onStop
onDestroy
Activity共有四种加载模式:
1. standard
模式启动模式,每次激活Activity时都会创建Activity,并放入任务栈中。
2. singleTop
如果在任务的栈顶正好存在该Activity的实例, 就重用该实例,否者就会创建新的实例并放入栈顶(即使栈中已经存在该Activity实例,只要不在栈顶,都会创建实例)。
3. singleTask
如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的onNewIntent())。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移除栈。如果栈中不存在该实例,将会创建新的实例放入栈中。
4. singleInstance
在一个新栈中创建该Activity实例,并让多个应用共享改栈中的该Activity实例。一旦改模式的Activity的实例存在于某个栈中,任何应用再激活改Activity时都会重用该栈中的实例,其效果相当于多个应用程序共享一个应用,不管谁激活该Activity都会进入同一个应用中。
(二)Service(服务)
Service与Activity的地位是并列的,它也代表一个独立的android组件。service没有用户界面,但它会在后台一直运行。
Service与Activity区别:Service通常位于后台运行,它一般不需要与用户交互,因此Service组件没有图形用户界面。Service组件需要继承Service基类。一个Service组件被运行起来之后,它将拥有自己独立的生命周期,Service组件通常用于为其他组件提供后台服务或监控其他组件的运行状态。
(三)BroadcastReceiver(广播接收器)
BroadcastReceive代表广播消息接收器,非常类似于事件编程中的监听器。普通事件监听器监听的事件是程序中的对象:而BroadcastReceive监听的事件源Android应用中的其他组件。
开发者实现了自己的BroadcastReceive之后,通常有两种方式来注册这个系统级的“事件监听器”。
--》在Java代码中通过Content.registReceive()方法注册BroadcastReceive。
--》在AndroidMainfest.xml文件中使用<receive......>元素完成注册。
广播类型:
普通广播,通过Context.sendBroadcast(Intent myIntent)发送的。
有序广播,通过Context.sendOrderedBroadcast(intent, receiverPermission)发送的。
异步广播,通过Context.sendStickyBroadcast(Intent myIntent)发送的。
(四)Content Provide(内容提供者)
Android系统为这种跨应用的数据交换提供了一个标准,ContentProvider。当用户实现自己的ContentProvider时,需要实现如下抽象方法。
Insert(Uri,ContentValues):向ContentProvider插入数据。
Deleter(Uri,ContentValues):删除ContentProvider中指定数据。
Update(Uri,ContentValues,String,String[]):更新ContentProvider中指定数据。
Query(Uri,String[],String,String[],String):从ContentProvider查询数据。
通常与ContentProvider结合使用的是ContentResolver,一个应用程序使用ContentProvider暴露自己的数据,而另一个应用程序则通过ContentResoler来访问数据。
参考网页:Android的四大组件
Android的主要组件的更多相关文章
- Android消息传递之组件间传递消息
前言: 上篇学习总结了Android通过Handler消息机制实现了工作线程与UI线程之间的通信,今天来学习一下如何实现组件之间的通信.本文依然是为学习EventBus做铺垫,有对比才能进步,今天主要 ...
- Android的四大组件之Activity
Android的四大组件之Activity Activity:是Android组件中最基本也是最为常见用的四大组件(Activity,Service服务,Content Provider内容提供者,B ...
- android中四大组件之间相互通信
好久没有写有关android有关的博客了,今天主要来谈一谈android中四大组件.首先,接触android的人,都应该知道android中有四大组件,activity,service,broadca ...
- Android四大基本组件介绍与生命周期
Android四大基本组件介绍与生命周期 Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器 ...
- Android开发之 Android 的基本组件的概述
Android是一个为组件化而搭建的平台,它的应用是由一些零散的有联系的组件组成,并通过AndroidManifest.xml文件 把它们绑定起来. Android常用的组件有: Activity(活 ...
- Android的四大组件
Android的四大组件:Activity.Service.BroadcastReceiver.Content Provider. Content Provider 属于Android应用程序的组件之 ...
- Android中Intent组件详解
Intent是不同组件之间相互通讯的纽带,封装了不同组件之间通讯的条件.Intent本身是定义为一个类别(Class),一个Intent对象表达一个目的(Goal)或期望(Expectation),叙 ...
- Android之桌面组件AppWidget
转载:Android之桌面组件App Widget初探 Android开发应用除了程序应用,还有App Widget应用.好多人会开发程序应用而不会开发App Widget应用.本帖子就是帮助大家学习 ...
- Android四大基本组件
Android四大基本组件分别是 Activity:整个应用程序的门面,负责与用户进行交互. Service:承担大部分工作. Content Provider内容提供者:负责对外提供数据,并允许需要 ...
随机推荐
- 8天学通MongoDB
随笔分类 - MongoDB 双十一来了,别让你的mongodb宕机了 摘要: 好久没过来吹牛了,前段时间一直赶项目,没有时间来更新博客,项目也终于赶完了,接下来就要面临双十一这场惊心动魄的处女秀考验 ...
- Angular service
<!DOCTYPE html> <html lang="en" ng-app="myApp"> <head> <met ...
- php关于return的关键字
使用return关键字可以使函数返回值,可以返回包括数组和对象的任意类型,如果省略了 return,则默认返回值为 NULL. function add($a) { return $a+1; } $b ...
- Toad
1. Toad 规矩: toad 不会违反, 限制, 扩大 你当前用户的权限, toad 不会影响你定义的关于instance的内容. 2. toad 可以执行大部分在 sql*plus 中执行的命令 ...
- IntelliJ IDEA创建第一个Java小程序
我尝试了汉化,会影响IDE部分功能. 其实IDE完全没必要汉化,就那么几个单词,不懂的话,就有道字典查一下吧. 汉化易于入门,不汉化一样可以使用. 我爱这个编辑器,非常之强大,就是比较占内存. 我爱这 ...
- JS里面匿名函数的调用 & 变量作用域的实验
参考 http://www.educity.cn/wenda/54753.html 已实验验证结果正确. 1.下列哪些正确?(B.C) A.function(){ alert("Here!& ...
- 非常非常非常好!path-sum-iii
https://leetcode.com/problems/path-sum-iii/ 最终我还是没做出好的解法.还是看的别人的解法. 即使看了别人的解法,开始还实现错了. 还有很长的路要走. pac ...
- JS function的定义方法,及function对象的理解。
废话篇: 今天看到了Function的内容,各种晕,各种混淆有木有.简直是挑战个人脑经急转弯的极限啊.不过,最终这一难题还是被我攻克了,哇咔咔.现在就把这东西记下来,免得到时候又忘了就悲催了.... ...
- HDU 2897 (博弈 找规律) 邂逅明下
根据博弈论的两条规则: 一个状态是必胜状态当且仅当有一个后继是必败状态 一个状态是必败状态当且仅当所有后继都是必胜状态 然后很容易发现从1开始,前p个状态是必败状态,后面q个状态是必胜状态,然后循环往 ...
- ASP.NET路由系统实现原理:HttpHandler的动态映射
我们知道一个请求最终通过一个具体的HttpHandler进行处理,而我们熟悉的用于表示一个Web页面的Page对象就是一个HttpHandler,被用于处理基于某个.aspx文件的请求.我们可以通过H ...