四大组件之 -> Activity 启动模式实战一

来源:互联网 发布:中国近几年gdp数据 编辑:程序博客网 时间:2024/06/10 20:00

今天本来是想写新系统的特性,但是觉得还是先搞一下四大组件比较靠谱

Activity就是四大组件中很常用的,同样重要的是Fragment,汉译是碎片,Fragment可以插入到Activity,咱们常见的分屏模式,就是用碎片来操作的,可以这样讲,只要一个Acitvity加上Fragment就可以千变万化,对于初学者来说,这些很难,好的,那咱们放到以后说,先搞activity

咱们不使用软件默认创建的activity,创建一个属于自己的Activity

Activity实战1

新建一个类,继承Activity,起名叫MyActivity

同时在清单文件中对这个activity进行注册

重写一下生命周期中的onCreate()

设置显示界面为activity_main.xml

看到这个黑色的标题栏,如果我们不想要它该怎么办呢

       requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏

       setContentView(R.layout.activity_main);

ok,在设置界面前面加上这句话就好了

布局做好了,咱们体会一下,这是activity的第一种打开方式(standard)默认模式

同时复制这个activity来创建第二个activity(同时在清单文件中注册),在第一个界面中添加一个按钮,设置功能是跳转到第二个activity咱们使用显示声明进行跳转,代码如下

运行起来后,点击按钮,可以发现跳转到了下一个界面,我们点Back按钮,又回到了上一个Activity,在这种模式下创建的Activity都是叠加的,在栈式内存中存放,每次点Back都会销毁最上层的Acitivity.

下面来实现我们第二种Activity打开方式

在清单文件Activity声明中定义如下语句

将启动模式设置为singleTop栈顶模式,故名思意就是,只能存在于栈顶

如果不在栈顶的话,那么就创建新的activity,在栈顶的话,就调用OnNewIntent()方法

那么开始咱们的实战练习,来模拟一个消息接收界面。

Activity实战2

在主界面的文本框中呼叫BurtActivity,Burt收到后弹出界面(设置BurtActivity启动模式为singleTop),同时在Burt界面也可以呼叫Burt(模仿收到网络中的消息,类似于接收到私聊)

开始我们程序的配置

在两个界面中创建文本框,单击按钮提交消息,BurtActivity代码如下

 

在Burt中反复提交也不会创建新的BurtActivity

同时重写一下OnNewIntent()方法

重新部署一下APP,BurtActivity中弹出了Toast。OK,实战成功

Activity的第三种打开方式是singletask,这里引用从群英传里看到的一句话“不是在新的任务栈中打开就是将已打开的Activity置于前台”,最长用的功能就是退出应用程序

实现方法,将主Activity设置为singletask启动模式,跳转到主Activity时会将主activity上层的activity全部销毁,然后在onNewIntent()中调用finish(),退出整个程序。

Activity的第四种打开方式是singleInstance,通常用于多个程序共享同一个Activity

 

Activity实战3

程序架构,在BurtActivity中定义按钮的功能为跳转到主Activity,主Activity启动模式设置为singletask,并在onNewIntent()中调用finish(),用来退出整个程序

BurtActivity按钮代码如下

主Activity关键代码如下

清单文件配置图

运行后,点击BurtActivity中的按钮,整个APP就退出了,OK,本次实战结束,回复源码,可以查看我的项目

0 0