初识Activity
(一)基础概念
1.Activity
(1)Activity
Activity是用户进行交互的可视化界面,用户切换屏幕时进行的是Activity的切换,一个完整的占了一个屏幕的页面(可以理解为网站的一个网页)每一个Activity都与一个后台程序相联系,这个JAVA程序可以控制这个页面的启动、展示以及数据等信息,页面上展示的内容可以通过Activity本身的xml文件配置。
(2)主活动
程序运行时首先启动的活动,没有主活动程序也不能够运行,不知道首先运行哪一个,但是这个程序仍然可以正常安装,只是无法在启动器中看到或者打开这个程序,一般作为第三方服务在其他应用内部进行调用,如支付宝的快捷支付服务。
(3)Intenet
各个组件之间进行交互的方式。显示的很好理解,隐式的Intent并不明确的指出我们要启动哪个活动,而是指定了一系列更为抽象的action和category,然后交由系统去分析Intent。
<IntentFilter>
意图过滤器,隐式的启动系统组件时,根据IntentFilter来筛选出合适的进行启动。
(4)生命周期
a.四种状态:运行状态、暂停状态、停止状态、销毁状态
b.三种生存期:完整生命周期、可见生命期、前台生存期
c.七种回调方法
方法名称 | 方法作用 |
---|---|
onCreat() | 活动第一次被创建时调用,在这个活动中完成初始化操作,加载布局、绑定事件。 |
onStart() | 活动由不可见变为可见时调用 |
onResume() | 活动准备与用户进行交互时调用,此时的活动位于栈顶,处于运行状态 |
onPause() | 启动或者回复另一个活动的时候调用,将一些消耗的CPU资源释放掉,保存一些关键数据 |
onStop() | 在活动完全不可见时调用 |
onDestroy() | 在活动被销毁之前调用,之后的状态变为销毁状态 |
onRestart() | 活动由停止状态变为运行状态之前调用,重新启动 |
(5)启动模式
启动模式名称 | 使用场景 |
---|---|
standard | 启动一个新的模式每次都会创建一个实例 |
singleTop | 会进行初步判断活动是不是在栈顶 |
singleTask | 针对任务不在栈顶的情况 |
singleInstance | 共享活动实例 |
2.XML文件
(1)Button
id,长宽,文本信息
(2)item
创建可供选择的菜单项
(二)代码解释
1.Activity中的代码
(1)findViewById()
功能:获取在布局文件中定义的元素。
参数:XML文件中的Id号。
(2)setOnClickListener()
功能:为按钮注册一个监听器,监听onClick的方法;
参数:View v
(3)Toast.makeText(FirstActivity.this,“You clicked Button 1”,Toast.LENGTH_SHORT).show();
功能:小而短的通知提醒信息。
参数:活动,文本,显示时间
(3)getMenuInflater()
功能:得到MeuuInflater对象;
参数:通过哪一个资源文件创建菜单,菜单项添加到哪一个资源文件中。
(4)item.getItemId()
判断点击的是哪一个菜单项,给每个菜单加入自己的处理逻辑。
(5)Intent intent = new Intent()
Intent intent = new Intent(FirstActivity.this,SecondActivity.class)
参数:第一个作为上下文,第二个作为目标活动。
(6)finish()
消除当前活动
2.XML文件
项目中的任何资源都会在R文件中生成一个相应资源的id
(1)Button
id,长宽,文本信息
android:id=“@+id/button_1”
给当前元素定义唯一的标识符,之后就可以在代码中对这个元素进行操作;
@id/button_1
引用一个id;
(2)item
创建可供选择的菜单项
3.Manifest
(1)<data>
配置语句 | 具体内容 |
---|---|
andriod:scheme | 指定数据的协议部分 |
andriod:host | 指定 数据的主机部分呢 |
andriod:port | 指定数据的端口部分,一般紧随主机名之后 |
andriod:path | 主机名和端口之后的部分 |
andriod:mimepath | 指定可出口的书u类型 |
(三)实践应用
1.通用实践
(1)手动创建活动
com.example.activitytest–>New–>Activity–>EmptyActivity
a.选择和没选择的区别 generate layout file
选择自动生成一个对应的布局文件。
b.选择和没选择的区别
会自动将当前活动设置为主活动。
(2)创建和加载布局
app/src/main/res–>New–>Directory(layout)
layout文件夹右键,新建一个布局资源文件
布局方式用XML文件编辑
(3)在AndriodMainfest文件中注册活动
给主活动指定的label不仅会成为标题栏中的内容,还会成为启动器(Launcher)中应用程序显示的名称。
2.具体应用
(1)Toast
Andriod系统的一种提醒方式,将一些短线的信息通知给用户,消息在一段时间后自动消失。
(2)Meun
系统中的可以点击弹出的菜单栏。
app/src/main/res–>New–>Directory(menu)
layout文件夹右键,新建Menu resource file
(3)两个Activity之间互相传递数据
(4)点击按钮跳转页面——Intent
打开一个网页;
显示地理位置;
拨打电话号码;
(四)其他
1.相关知识
(1)Android布局基础知识:wrap_content,match_parent,layout_weight
(2)AndroidStudio创建项目时的minimum SDK作用
2.遇到过的问题
(1)更新功能后没有办法直接在APP里进行更新
解决办法File——Setting——Build——Hotswap
(2)解决Android Studio报的警告:Resource IDs will be non-final in Android Gradle Plugin version 5.0
(3)xml如何添加注释? < >
内部不能注释
(4)「第一行代码」 activity supporting action_view is not set as browsable
参考书籍
《第一行代码》