Android四大组件是一个android app 最基本的组成部分,这篇博客主要给大家简单的介绍一下四种组件

(1)Activities

(2)Services

(3)BroadcastReceiver

(4)ContentProvider

(1)Activities

我们先看看 android api guide 对Activities的简单介绍

就像上面所描述,你所使用的App中所看到的屏幕内容其实就是一个Activity,至于Activity的生命周期分析以及注意点,大家可以从我的博客《Android开发艺术探索》读书笔记之Activity的生命周期了解,今天这里主要是想和大家研究一下另类的Activity—”Fragments“

Fragment非常的类似于Activity,有着自己的生命周期,拥有自己的布局,本身可以作为事件监听器,在android 3.0(API lever 11)并没有Fragment,都是用Activity来表示用户页面,这就造成了一个问题,想象一下,同样的一个程序,在小屏幕手机上可能看起来非常的合适,但是你把程序移植到平板电脑上呢,这时候很有可能图片变形啦,感觉分辨率变低啦,控件之间的间距变大啦,为了给用户在大屏幕手机上更好的用户体验,Android在android 3.0(API lever 11)的时候引入了Fragment,Fragments嵌套在Activity中使用。先简单介绍下fragment的生命周期。

onAttach():当该Fragment被添加到Activity时被回调,该方法只会被回调一次

onCreate(Bundle SavedStatus):创建Fragment事被回调,该方法只会被调用一次

onCreateView():每次创建,绘制该Fragment的View组件时回调该方法,Fragment将会显示该方法返回的View组件

onActivityCreated():当Fragment所在的Activity被启动后回调该方法

onStart():启动Fragment时被回调

onResume():恢复Fragment时被回调,onStart()方法后一定会回调onResume()方法

onPause():暂停Fragment时被回调

onStop():停止Fragment时被回调

onDestroyView():销毁该Fragment所包含的View组件时被调用

onDestroy():销毁Fragment时被回调,该方法只会被调用一次

onDetach():将该Fragment从Activity中被删除,被替换完成时回调该方法,该方法只会被调用一次。

Activity,Fragment两者都有自己的生命周期,上面说了Fragment是嵌套到Activity中使用的,那两者的生命周期有什么联系吗?
API里的一张图很好的说明了两者之间的关系。

那么到底怎么把Fragment添加到Activity中呢?主要有两种方法,一种是静态加载,另外一种是动态加载,先来看看静态加载Fragment,静态加载Fragment就是将Fragment当成普通的UI控件放到界面Layout中,如下面

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="1"> <fragment
android:name="com.keranbin.androidtrain.LeftFragment"
android:layout_width="0dp"
android:id="@+id/left_fragment"
android:layout_height="match_parent"
android:tag="LEFT"
android:layout_weight="0.3"></fragment>
<fragment
android:name="com.keranbin.androidtrain.RightFragment"
android:layout_width="0dp"
android:id="@+id/right_fragment"
android:tag="Right"
android:layout_height="match_parent"
android:layout_weight="0.7"></fragment>
</LinearLayout>

使用静态方式加载Fragment,当Activity创造Activity的Layout时,它会通过android:name找到相应的Fragment然后再在其onCreateView中取得该Fragment的页面布局文件加载在当前<fragment>中,另外需要注意的一点是,每个Fragment都需要一个独一无二的标志以便系统能找到该Fragment,其中有三种方式来赋予Fragment一个标志。

1:android:id

2:android:tag

3:android:id 和android:tag 这种情况下,系统会使用android:id,其实和1一样。

除了静态加载Fragment之外,还有动态加载Fragment,个人觉得,动态加载Fragment更加的灵活点。

package com.keranbin.androidtrain;

import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle; public class MainActivity extends AppCompatActivity {
FragmentManager fm;
FragmentTransaction ft; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); initFragments();
} /**
* initiate the LeftFragment and RightFragment
*/
private void initFragments() {
fm=getSupportFragmentManager();
ft=fm.beginTransaction(); LeftFragment lFragment=new LeftFragment();
ft.add(R.id.left_fragment,lFragment,"LEFT"); RightFragment rFragment=new RightFragment();
ft.add(R.id.right_fragment,rFragment,"RIGHT");      ft.commit();
}
}

Fragment暂时就介绍这么多,具体的会在Demo中讲诉。

(2)Services

看看 android api guide 对Activities的简单介绍

aaarticlea/png;base64,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" alt="" />

ANDROID培训准备资料之四大组件的简单介绍的更多相关文章

  1. Android(Lollipop/5.0) Material Design(一) 简单介绍

    Material Design系列 Android(Lollipop/5.0)Material Design(一) 简单介绍 Android(Lollipop/5.0)Material Design( ...

  2. Android基础整理之四大组件Activity

    最近准备系统的重新整理复习一下Android的各方面的知识,本着知识分享的原则,我就把梳理过程中一些东西给记录下来,权当一个学习笔记吧. 下面步入正题..... 什么是Activity Activit ...

  3. Android基础知识、四大组件(转)

    Android应用程序使用java语言编写的.Android SDK工具将所有的数据和资源文件以及代码进行编译,打包称为一个apk文件.一个apk文件中的所有代码被认为是一个应用,android系统的 ...

  4. Android四大组件之一Service介绍-android学习之旅(十二)

    基本概念: service是android四大组件之一,运行在后台执行耗时操作,并不提供用户界面.其他组件如acticity可以通过startService启动该组件,也可以通过bindService ...

  5. Android回炉系列之四大组件之首Activity

            有段时间没有认认真真研习过android了,android毕竟是我进这个软件开发圈子接触的第一门技术,android已经成了口头禅之类的东西了.当初学习android的时候大都是草草了 ...

  6. Android四大组件:BroadcastReceiver 介绍

    介绍 BroadcastReceiver 即广播组件,是 Android 的四大组件之一.用于监听和接收广播消息,并做出响应.有以下一些应用: 不同组件之间的通信(应用内或不同应用之间). 多线程之间 ...

  7. Android中有四大组件的简单总结

    Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器. 一:了解四大基本组件 Activity ...

  8. Android培训准备资料之五大布局简单介绍

    本篇博客主要简单的给大家介绍一下Android五大布局 (1)LinearLayout(线性布局) (2)RelativeLayout(相对布局) (3)FrameLayout(帧布局) (4)Abs ...

  9. ANDROID培训准备资料之项目结构简单介绍

    Android Studio项目结构初步主要介绍下面几个文件夹,后续再补充 (1)java文件夹的介绍 (2)Res文件夹的介绍 (3)R文件的介绍 (4)Manifests文件夹的介绍 我们先看看整 ...

随机推荐

  1. 【LeetCode】437. 路径总和 III

    437. 路径总和 III 给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点 ...

  2. impdp中的DISABLE_ARCHIVE_LOGGING参数测试

    impdp中的DISABLE_ARCHIVE_LOGGING参数测试 发表于 2017 年 04 月 08 日 由 惜分飞 联系:手机/微信(+86 13429648788) QQ(107644445 ...

  3. mssql sqlserver sql脚本自动遍历重复生成指定表记录

    摘要: 今天接到老板的需求,需根据一张表中列值,自动重复表中的数据行,然后显示给用户 实验环境:sqlserver 2008 R2 转自:http://www.maomao365.com/?p=841 ...

  4. Linux下迅速删除一个大文件夹

    rsync -av --delete /tmp/null/ ./        迅速删除大文件夹,如缓存 快速删除大目录(即大量文件)1.先建立一个空目录 mkdir /data/blank 2.用r ...

  5. SpringBoot+Mybatis多模块项目搭建教程

    一.前言 框架为SpringBoot+Mybatis,本篇主要记录了在IDEA中搭建SpringBoot多模块项目的过程. 1.开发工具及系统环境 IDE:IntelliJ IDEA 2018.2 系 ...

  6. 手动O3

    #pragma GCC optimize(3,"Ofast","inline") 貌似这玩意并不能在noip考场上用

  7. Linux下怎么启动、停止和重启MySQL

    一.启动方式 使用linux命令service 启动:service mysqld start 使用 mysqld 脚本启动:/etc/inint.d/mysqld start 使用 safe_mys ...

  8. 弄明白kubernetes中的“三种IP”

    Node IP : Node节点的IP地址 Pod IP:Pod的IP地址 Cluster IP : Service 的IP地址 首先,Node IP是Kubernetes集群中每个节点(服务器)物理 ...

  9. 消息队列的使用<二>:ActiveMQ的基本使用(Java)

    目录 ActiveMQ 介绍 下载.安装和初次运行 Java上初次使用activeMQ 设置请求属性: 可靠性机制 事务 消息消费方式 receive 监听器: 消息类型 发布/订阅模式 非持久订阅 ...

  10. 剑指offer:对称的二叉树(镜像,递归,非递归DFS栈+BFS队列)

    1. 题目描述 /** 请实现一个函数,用来判断一颗二叉树是不是对称的. 注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的 */ 2. 递归 思路: /** 1.只要pRoot.left和 ...