安卓开发
2023-11-19 22:19:57 6 举报
AI智能生成
安卓开发
作者其他创作
大纲/内容
组件
Activity
一个应用程序组件,提供一个屏幕,用户可以用来交互来完成某项任务
activity启停活动页面
activity的启动和结束
activity的生命周期
onCreate
创建活动,将页面布局加载到内存,进入初试状态
onStart
将页面活动显示到屏幕上
onResume
活动页面进入活跃状态,可以与用户进行交互
onPause
暂停页面,无法交互
onStop
停止页面的活动
onDestroy
取消页面的监听
onRestart
重启活动
onNewIntent
当开启的活动在栈中存在,那么调用这个方法
activity的启动模式
在xml中设置
standard默认
启动活动会依次启动顺序压入task栈中
singleTop栈顶复用模式
如果栈顶的活动是我们需要的activity就不需要创建新的activity
singleTask栈内复用模式
当栈内存在目标activity实例,就会将目标activity上的所有实例弹出
对于应用的主界面,我们希望可以从主界面退出应用并且不希望主界面频繁创建
对于消耗系统资源的activity,我们也希望通过这种方式减少资源的消耗
singleInstance
为目标activity创建一个新的task栈,将目标activity放入新的task栈中
通过代码的setFlags方法来设置启动模式
FLAG_ACTIVITI_NEW_TASK
开辟一个新的任务栈
相当于singleInstance
FALG_ACTIVITY_SINGLE_TOP
栈顶复用模式singletask
FLAG_ACTIVITY_CLEAER_TOP
栈内复用模式,清除原实例上方的所有实例
FLAG_ACTIVITY_NO_HISTORY
栈中不保存新启动的活动实例
FALG_ACTIVITY_CLEAR_TASK
跳转到新页面时,栈中的原有实例都被清空
清空原来task中的所有实例,因此需要新建的activity创建在一个新的栈中也就是需要配合FLAG_ACTIVITY_NEW_TASK使用
对于登录界面内,我们希望登录完成后不会回退到登录界面,而是直接退出
activity之间的数据传递
显式的Intent和隐式Intent
显式Intent
直接指定来源活动和目标活动
实现方式
构造方法
setClass
ComponentName
也就是直接表明我这次通信从哪个activity到哪个activity
隐式Intent
有时候在代码中并不明确我们的通信一定从哪里传送到哪里,就是用隐式intent来设置通信的行为action
category主要是用来做一个分类的作用,当我们传递数据的时候,只会发送给对应分类下的activity或者应用,比如
我们传递音乐数据,那么就将category设置为分类,那么即使让你选择也只会让你从这个分类下的应用去选,比如
qq音乐饿,网易云音乐
我们传递音乐数据,那么就将category设置为分类,那么即使让你选择也只会让你从这个分类下的应用去选,比如
qq音乐饿,网易云音乐
类似一种模糊匹配,根据action行为,这个app是做什么的,
根据category类型,这个app的类型进行匹配
根据category类型,这个app的类型进行匹配
意图的作用主要是表示通信从哪里来到哪里去,需要携带的数据
向下一个Activity发送数据
使用bundle打包需要传递数据,然后调用intent的putextras方法来讲数据存到Intent中
接收方通过getIntent获取数据
接收方通过getIntent获取数据
向上一个返回数据
首先发送界面通过Intent发送界面并且注册监听回调函数
然后发送界面通过getIntent()方法获取意图和里面的Bundle
数据来进行显示,通过setResult设置结束的意图,再使用finsih
来结束当前的意图
然后发送界面通过getIntent()方法获取意图和里面的Bundle
数据来进行显示,通过setResult设置结束的意图,再使用finsih
来结束当前的意图
那么当前页面结束以后会将对应的intent返回给发送界面的监听器来进一步处理
对应有状态码来判断数据是否处理成功和失败,当成功了就是用Activity.Result_Ok来实现
补充附加信息
获取配置文件中的内容,直接在activity中调用getString()方法获取,这个方法是Context类的方法,
而activity类又继承与Context,所以可以直接在activity中调用
而activity类又继承与Context,所以可以直接在activity中调用
获取元数据中的内容,主要的应用场景就是调用第三方的代码,需要使用token来验证身份,那么会在元数据中存储token来方便从activity中读取来验证身份
元数据的获取流程就是首先从上下文获取包管理器,再通过包管理器来获取对应的activity配置信息,来读取对应的元数据
简单控件
文本显示
视图基础
常用布局
按钮控件
图像显示
app项目结构
app
manifests
androidManifest.xml包含了APP的配置信息,系统需要根据里面的内容运行app代码和界面显示
java
java代码
res
resource资源文件夹
包括对于样式主题设置
Gradle Scripts
Build.gradle
gradle的配置文件类似于pom.xml
proguard-rules.pro
用来反逆向工程的,混淆
gradle.properties
配置编译的命令参数
settings.gradle
表示需要编译的模块
local.properties
表示sdk的位置
也可以表示NDK的位置
规范
使用XML+java来实现页面和逻辑
尺寸
px像素
分辨率
屏幕的垂直和水平方向的像素数量
Dpi
屏幕上每英寸有多少个像素点
像素密度
Density密度
Dip
设备独立像素
开发中使用的单位,在不同的设备上不同,最后设备会转化为px
0 条评论
下一页