Intent的基本用法以及Activity的生命周期和启动模式

原创 2016年08月30日 20:46:40

Activity的两种跳转

1.显式跳转(3种写法)
定义一个意图
1>Intent intent=new Intent(上下文,跳转的activity.class);
或者 Intent intent=new Intent();
intent.setClass(上下文,跳转的activity.class);
2>Intent intent=new Intent();
intent.setClassName(上下文,包名.跳转的activity.class);
3>courpouentName(不常用)
开启startActivity(intent);(实现跳转)
2.隐式跳转
方法:AndroidManifest清单文件里给要跳转到activity添加意图过滤器
<intent-filter>
<action android:name=""/>//此处可以给一个自定义的名字
<category android:name=""/>//这里填写要以default结尾的
</intent-filter>
然后定义一个意图
Intent intent=new Intent();
intent.setAction(填写要跳转到的acitvity里的action定义的名字);
startActivity(intent);
带值跳转

1.使用意图.putExtra("a",b);--->这里ab类似map的键值对(传值)
跳转的页面使用getintent().get<类型>Extra(a);--->类型是传的值的类型,a是传值的对应的数据的键;(接收数据)
2.定义一个Bundle对象,给Bundle存数据--->Bundle(a,b)--->ab同map键值对
然后存入意图中
1>意图.putBundleExtra(bundle键,bundle对象)
2>意图.putExtras(bundle对象)
对应的接收数据
1>getintent().getBundleExtra(bundle键);
2>getintent().getExtras();

3.带值回传
A页面中:定义一个intent
给intent存值
使用startActivityForResult(intent,请求码);(理解为传值过去并给了一个请求码)
B页面中:定义一个intent
给intent存值
setResult(响应码,intent);

A页面中:重写onActivityResult方法
判断响应码和请求码相同时获得data数据实现互相传值目的


生命周期

一个activity的生命周期
创建的时候-->oncreate-->onstart-->onresume-->启动运行中
运行中-->onpause-->onstop-->onrestroy-->程序结束

两个activity的生命周期
A创建的时候-->oncreate-->onstart-->onresume-->运行中
跳转到B的时候-->A-->onpause-->B-->oncreate-->onstart-->onresume
-->A-->onstop
B返回的时候-->B-->onpause-->A-->onrestart-->onstart-->onresume
-->b-->onstop-->ondestroy
B跳转到A的时候-->B-->onpause-->A-->onrestart-->onstart-->onresume
-->b-->onstop
A被回收后B返回时候-->B-->onpause-->A--oncreate-->onstart-->onresume
-->b-->onstop-->onrestroy
一个全屏activity跳转到一个窗口型的activity的生命周期
A创建的时候-->oncreate-->onstart-->onresume-->运行中
跳转到B的时候-->A-->onpause-->B-->oncreate-->onstart-->onresume
B按返回时-->B-->onpause-->A-->onrestart-->onstart-->onresume
-->B-->onstop-->onstroy

每个阶段的状态
oncreate 不可见不可交互  onstop
onstart可见不可交互   onpause
onresume  可见可交互
onrestart   不可见-->可见

AndroidManiFast中的4种启动模式(launchMode)

standard默认启动模式
使用堆栈模式,首次启动activity时,会开辟一个栈存放activity,当activity互相跳转的时候回以此的往栈中堆叠存放,程序要整个退出需要按存放数量次才可以退出
singletop单一栈顶模式
如果栈顶存放的跟将要跳转的activity一致时,则不会重复的堆叠在栈顶了。
singletast单一任务模式
当将要跳转时,会再任务栈中查找是否有和将要跳转的activity一样的activity,如果有,则把该activity切换到栈顶,本来在存在的activity之上的activity都会出栈,如果没有,则堆叠在任务栈栈顶
singleinstance单例模式
简单的可以理解为,如果当前的activity是这个模式,按返回时这个activity最先出栈,如果这个模式的activity不是当前的activity,按返回时这个activity最后出栈。





































































版权声明:本文为博主原创文章,未经博主允许不得转载。

Activity生命周期,启动模式LaunchMode,碎片Fragment,Intent跳转传递

一、Activity生命周期(启动模式为默认的情况)          startActivity主要可以让目标界面入栈(移到栈顶)          导致:当前的Activity进入stop状态...

Activity入门--“生命周期”,启动模式,Intent跳转Flag方式

掌握生命周期对开发者来说很基础,但至关重要,当理解好了生命周期,才可以写出连贯流畅的程序,并且能掌握如何管理应用程序的资源,得到更好的用户体验。 什么是Activity(活动)? 所谓活动就是吸引...

Android开发笔记----Activity再学习(生命周期、启动模式、intent-filter)

本文参考了任玉刚前辈的《Android开发艺术探索》一书,可以说是该书相关内容的读书笔记。 (一) Activity生命周期: 正常启动:onCreate->onStart->onResume ...

Activity生命周期与启动模式

  • 2017年08月08日 14:11
  • 26.15MB
  • 下载

Activity生命周期 启动模式实例

  • 2015年08月28日 19:29
  • 223KB
  • 下载

Intent、activity生命周期、activity启动模式、横竖屏显示

//Intent 同一个应用程序里面 自已激活自已的东西,推荐使用显示意图,效率高 不同的应用程序里面,激活别人的应用,或者是让自已的某一个界面,推荐使用隐士意图 1.查询系统里面的所有 activ...

Activity生命周期,显示隐式启动和四种启动模式,activity之间通过Intent传递数据

activity周期函数回调时机,activity显示启动和隐式启动和四种启动模式,activity之间传递简单数据及list复杂数据...

四大组件之活动(Intent、生命周期、启动模式)

补充:在配置文件中配置Activity,只需要在标签内,然后使用 即可完成非主活动的注册! 一、Intent的使用 1、使用显式的Intent Intent intent = new Inent(F...

activity4种启动模式,生命周期的理解

一、Activity的生命周期 当activity处于应用中运行时,它的活动状态是由以activity栈的形式管理的。固随着不同应用的运行,每个activity都可能从活动状态转到非活动状态,也会从...

Activity的生命周期和启动模式详解

BACK键:   当我们按BACK键时,我们这个应用程序将结束,这时候我们将先后调用onPause()->onStop()->onDestory()三个方法。 再次启动App时,会执行onCreate...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Intent的基本用法以及Activity的生命周期和启动模式
举报原因:
原因补充:

(最多只允许输入30个字)