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最后出栈。





































































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

android intent 的生命周期讲解和历程

  • 2013年11月05日 23:05
  • 46KB
  • 下载

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

Activity的两种跳转 1.显式跳转(3种写法) 定义一个意图 1>Intent intent=new Intent(上下文,跳转的activity.class); 或者 Intent i...
  • Daisuki_ch
  • Daisuki_ch
  • 2016年08月30日 20:46
  • 261

Androd startActivities(Intent[] intents)启动的Activity生命周期

startActivities
  • oworkn
  • oworkn
  • 2016年03月01日 19:57
  • 703

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

BACK键:   当我们按BACK键时,我们这个应用程序将结束,这时候我们将先后调用onPause()->onStop()->onDestory()三个方法。 再次启动App时,会执行onCreate...
  • robertcpp
  • robertcpp
  • 2016年07月01日 10:12
  • 5195

Activity启动模式及Intent的Flag属性对Intent传值的影响

前些时候在支援公司其它部门项目开发的时候,有同事问我:通过Intent在Activity之间进行数据传递,传递的Key和获取的Key都没错,为什么在目标Activity会获取不到传递过来的数据?在Ke...
  • u010933680
  • u010933680
  • 2016年08月27日 13:58
  • 3682

Android:Activity的生命周期和启动方式

一、生命周期返回栈和任务。 任务是一系列Activity的集合。在安卓开发中Activity被安排在返回栈中保存。先进后出的样式。 一般一个任务对应到一个返回栈。当然也可以一个任务对应多个返回栈。...
  • Jungle_hello
  • Jungle_hello
  • 2016年06月20日 23:45
  • 430

Activity生命周期与启动模式

Activity作为四大组件之首是使用最为频繁的组件,它主要是负责呈现界面,为用户提供可用的操作或是运行的结果。其中,关于Activity的生命周期一直都是比较重要的知识点。本次我主要是学习了Acti...
  • shona_chen
  • shona_chen
  • 2017年05月14日 15:07
  • 157

【安卓笔记】成长第二步,Activity的启动模式与IntentFilter的匹配规则

一、Activity的启动模式 1.为什么需要启动模式 在默认的情况下,当我们多次启动同一个Activity时,系统会创建多个实例并把他们一一放在任务栈中,当我们按下back键的时候,任务栈又会把他们...
  • x981880611
  • x981880611
  • 2016年02月29日 15:28
  • 412

Activity的启动模式 和 Intent启动选项

启动模式允许开发者定义一个activity的新实例如何与当前的Task关联。可以定义使用俩种方法来定义。 如果Activity A开启Activity B, Activity B就可以在它的mani...
  • petib_wangwei
  • petib_wangwei
  • 2016年12月15日 16:32
  • 870

Activity生命周期、启动方式及常见Activity

两个Activity交互时的生命周期 页面跳转(从MainActivity到SecondActivity) 再按back键 Activity生命周期交互设...
  • DuanLiuchang
  • DuanLiuchang
  • 2016年06月12日 19:22
  • 342
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Intent的基本用法以及Activity的生命周期和启动模式
举报原因:
原因补充:

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