天天看点

Android组件系列----当前Activity跳转到另一个Activity的详细过程

【正文】 

一、如何在一个应用程序当中定义多个activity:

步骤如下:

(1)定义一个类,继承activity

(2)在该类当中,复写activity当中的oncreate()方法

(3)在androidmanifest.xml文件中注册该activity

详细解释如下:

(1)定义一个类,继承activity:在src文件夹里面的包中新建一个class文件,可命名为:secondactivity.java

(2)在该类当中,复写activity当中的oncreate()方法:在菜单栏选择source--->override/implement methods,弹出框,选择其中的oncreate()方法:

Android组件系列----当前Activity跳转到另一个Activity的详细过程

注:oncreate()方法是activity运行的入口。

紧接着,在layout文件夹中,为该activity添加布局文件:(文件名必须为小写)

Android组件系列----当前Activity跳转到另一个Activity的详细过程

在该布局文件中添加一个 <textview />

在secondactivity.java中设置该activity所使用的布局文件,即在oncreate()方法中添加如下代码:

打开androidmanifest.xml文件,注意里面的activity标签,即以下代码:

Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程

代码解释如下:

02行:代表activity的名字:包名+类名。

03行:label指定活动中标题栏的内容。

04至08行:activity的子标签,即:

以上这段代码放在哪个activity里,那个activity就作为应用程序默认启动的activity。即程序运行后的默认启动的activity。

现在将secondactivity注册进去,在第一个activity后面,添加如下代码:

二、android当中的back stack(后退栈):(栈:子弹上膛,先进后出)

Android组件系列----当前Activity跳转到另一个Activity的详细过程

android操作系统只显示back stack中最上面的元素(只显示栈顶端的activity)。

在上方的图中,当用户点击后退按钮时,出现以下情况:(最上方的activity将被移除,依此类推)

Android组件系列----当前Activity跳转到另一个Activity的详细过程

三、启动一个activity的方法:即在默认启动的activity中启动另一个activity

核心代码如下: 

(1)生成一个意图对象 intent

(2)调用setclass方法设置所要启动的activity

(3)调用startactivity方法启动activity

具体解释如下:

【实例】在第一个activity点击按钮,来启动第二个activity;在第二个activity点击按钮,返回到第一个activity

(1)生成一个意图对象 intent (intent封装了你想做什么这件事)

在布局文件activity_main.xml文件中添加一个button,并在mainactivity.java中生成button的监听器,

生成意图对象的代码如下:

intent intent = new intent() ;

(2)调用setclass方法设置所要启动的activity:

intent中的setclass方法格式如下:

intent.setclass(packagecontext, cls) ;

参数解释如下:

第一个参数:这个context对象即当前activity对象。activity是context类的子类,此时activity向上转型了。

第二个参数:表示意图启动的那个activity 。

总而言之,监听器部分的【核心代码】如下:

Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程

核心代码为第04行至第09行。

【完整代码】如下:方案一

Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程

并在清单文件中注册secondactivity,添加如下代码:

Android组件系列----当前Activity跳转到另一个Activity的详细过程

或者如果不绑定监听器的话,可以对布局文件中的button添加如下代码:android:onclick="gotosecondactivity"

【完整代码】如下:方案二

Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程
Android组件系列----当前Activity跳转到另一个Activity的详细过程

生命周期描述如下:

当用户点击当前默认的mainactivity中的按钮后,会跳到secondactivity。生命周期如下:

启动默认activity时:

mainactivity:oncreate

mainactivity:onstart

mainactivity: onresume

点击按钮后,跳到secondactivity:(mainactivity被保留至栈底)

mainactivity:onpause

secondactivity:oncreate

secondactivity:onstart

secondactivity: onresume

mainactivity: onstop

按返回菜单后,回到mainactivity:(secondactivity被销毁)

secondactivity: onpause

mainactivity:onrestart

secondactivity: onstop

secondactivity: ondestroy

当用户打开应用程序,之后按home键返回到主页(或者按电源键,效果是一样的),再回到原来的程序。生命周期描述如下:

按home键返回到主页:

mainactivity:onstop

再回到原来的程序:

mainactivity:onresume

继续阅读