移动软件开发
实验三:活动与意图
一、实验目的
- 熟练活动和意图的基本知识和用法;
- 掌握通过显式或隐式方式启动活动的方法;
- 掌握活动之间数据的传递;
- 了解活动生命周期以及活动模式的作用。
二、实验内容
- 根据PPT或课本中的提示,练习显式和隐式两种方式启动活动;
显式:
在second_layout.xml.中输入代码:
代码已经自动定义如图:
在AndroidManifest.xml中
在FirstActivity中修改点击触发代码:
运行程序,点击button1:得到结果
隐式Intent:
在AndroidManifest.xml中添加如下代码:
此时在修改FirstActitvity中的点击事件如下:
重新运行程序:
得到正确结果
- 尝试隐式Intent启动网页、系统拨号以及地图;
启动网页:
修改FirstActivity中按钮点击事件的代码:
运行:
系统拨号:
修改代码如下并运行:
地图:
修改代码如图所示:
- 根据PPT或课本中的提示,通过例子熟悉活动的生命周期和启动模式;
Activity的生命周期
答:onCreate->onStart->onResume->Activity运行->新的Activity运行->onPause->onStop->onDestroy->Activity销毁
Activity的启动方式
答:四种启动模式,standard, singleTask, singleTop, singleInstance。
standard:标准模式,在当前的任务栈上创建新的Activity,不论之前有没有创建过该Activity。注意:ApplicationContext无法启动standard模式的Activity。
singleTask:栈内复用模式,分两种情况,第一种情况:如果有任务栈里已经创建了该Acitiviy,直接销毁该Acitivity栈上面的所有Acitivity,无须新创建一个Activity;第二种情况:如果没有任务栈里已经创建该Activity,创建一个新的任务栈并在新栈上创建新Activity。注意:该模式下复用Activity,系统会调用Activity的onNewIntent方法。
singleTop:栈顶复用模式,如果该Activity在任务栈栈顶,即当前活动的Acitivty就是要创建的Activity,那么不会创建新的Activity。注意:该模式下复用Activity,系统会调用Activity的onNewIntent方法。
singleInstance:单实例模式,加强版的singleTask,当每次都直接创建一个新的任务栈,再在该新栈上创建新Activity。注意:singleInstance永远是单栈单Activity
- 基于所学的Intent和Activity知识,设计一个包含用户登录A、登录后界面B以及注册界面C的简单APP,类似下图的界面,但不局限于下图。实现如下功能:
(1)三个活动可设置为SingTask模式,A界面为主活动界面;
(2)A界面开始,输入用户名,密码,点击“登录”按钮,进入界面B,并显示欢迎信息;
(3)A界面开始,点击注册,进入界面C,输入注册信息后,点击“确定”按钮进入界面B,点击“取消”按钮,回到界面A;
(4)设计一个OptimMenu,包含退出菜单项,当点击退出菜单项时,直接退出程序;
(5)结合你用过的APP,看一下你的APP有没有逻辑上的缺陷,如果有,思考一下如何修改。
A B C