Android基础之四大组件(Activity

您所在的位置:网站首页 安卓的核心组件是什么软件做的 Android基础之四大组件(Activity

Android基础之四大组件(Activity

2024-07-12 06:05| 来源: 网络整理| 查看: 265

目录

四大组件

Activity(活动)

Service(服务)

Broadcast Receiver(广播接收者)

Content Provider(内容提供者)

四大组件 Activity(活动) 简介 Activity相当于一个页面,可以在Activity中添加各种控件,例如Button,TextView等。一个Android程序(APP)可以由多个Activity组成提供了与用户交互的可视化界面(GUI)Android中使用栈task来存储Acticity,及先进后出,栈顶及我们所看到的页面 生命周期 onCreat()--->onStart()--->onResume()--->onPause()--->onStop()--->onDestory()onStop()--->onRestart()--->onStart()图解

启动模式(4种) Standard(默认启动模式)

在该模式下,Activity可以有多个实例,每次启动一个Activity,无论栈Task里面是否已经存在该Activity的实例,都将创建一个新实例入栈

例如,Acticity A调用B,然后B调用A,这时栈的情况是ABA

SingleTop(栈顶复用模式)

当一个SingleTop实例位于栈顶时,再去启动它时,不需要创建新的实例,只需要调用newInstance()方法,但若不在栈顶,则会被重新创建

例如,A调用B,B调用B自己,情况是AB,若A调用B,B调用A,A再调用B,情况是BABA,同Standard

SingleTask(单任务模式)

如果启动的Acticity存在于栈Task中,则该Activity的实例会被移到栈顶(相当于将该Acticity之上的实例全部移出栈)

例如,原来Stack里面有ABCD,调用B,那就变成AB

SingleInstance(单实例模式)

一个Activity就是一个栈

启动方式 为Activity指定所需任务栈的方式

在AndroidManifest.xml下,添加taskAffinity属性(默认情况下不指定该属性值,则该activity的指定栈为应用的包名)

为Activity指定启动模式

在AndroidManifest文件中指定lanchMode属性值

Intent intent = new Intent(MainActivity.this, SecondActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);

通过Intent中设置标志位来指定启动模式

常见Flags标志位 · FLAG_ACTIVITY_NEW_TASK 指定singleTask模式 · FLAG_ACTIVITY_SINGLE_TOP 指定singleTop模式 · FLAG_ACTIVITY_CLEAR_TOP 同一栈中的所有位于该activity上方的都出栈 跳转方式 显示启动

Intent内部直接声明要启动的activity所对应的class

Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivity(intnet); 隐式启动

分为两步走 第一步,在文件里配置activity属性

0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){ readContacts(); }else { // 您拒绝了权限 } } } uri主要格式 * : 表示匹配任意长度的任意字符# : 表示匹配任意长度的数字 content://com.example.app.provider/table1 content://com.example.app.provider/table1/1 //一个能够匹配任意表的内容URI格式就可以写成: content://com.example.app.provider/* //一个能够匹配表中任意一行数据的内容URI格式就可以写成: content://com.example.app.provider/table1/#

作用

封装。对数据进行封装,提供统一的接口,使用者完全不必关心这些数据是在DB,XML、Preferences或者网络请求来的。当项目需求要改变数据来源时,使用我们的地方完全不需要修改提供一种跨进程数据共享的方式


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3