常用的使用FLAG的启动模式和横竖屏生命周期问题

原创 2016年08月31日 00:08:01

FLAG启动模式

在意图Intent中设置属性(4种属性)
1.FLAG_ACTIVITY_CLEAR_TOP:
如果在意图中设置了此属性,那么跳转的activity启动时,将会检查任务栈中是否有自己存在,如果存在,则转换到该activity上,并把该activity上的其他activity全部出栈,如果不存在,则堆叠入栈顶。类似于singletask
2.FLAG_ACTIVITY_SINGLE_TOP:
在意图中定义次属性,跳转的activity启动时,将会检查栈顶的activity是否是本身的activity,如果是,则不会再往任务栈中添加跳转的activity,简单来说就是,activity跳转自己,则任务栈中不会重复的添加自身activity
3.FLAG_ACTIVITY_NO_HISTORY
跳转activity时,如果跳转后的activity再进行跳转,则任务栈中不会有该activity的记录。简单的理解为,该activity没有加入任务栈中。
4.FLAG_ACTIVITY_NEW_TASK
跳转activity时,如果该activity设置了singletask启动模式,则会先找到存放该singletask的栈,再把该activity堆叠进栈,如果没有设置singletask启动模式,则会创建一个栈,来存放该activity。如果该activity不是正常途径启动,则要在intent中添加FLAG_ACTIVITY_NEW_TASK属性

横竖屏时的生命周期问题


横屏H,竖屏V
保存数据onsaveinstancestate
加载数据onrestoreinstancestate
启动时H-->oncreate-->onstart->>onresume启动
切换时-->H-->onpause-->onsaveinstancestate-->onstop-->ondestroy-->V-->oncreate-->onstart-->onrestoreinstancestate-->onresume
再切换时同上

如果在清单文件那边设置configchanges="orientation"时
则会在onresume后onconfigurationchanged

如果在清单文件那边设置configchanges="orientation|keyboardhidden"
则只打印onconfigurationgchanged和onconfigchanged

targetsdkversion<12时,不用重新创建activity
targetsdkversion>12时,需要重新创建activity

如果在清单文件那边设置configchanges="orientation|keyboardhidden|screensize"
则只会执行onconfigurationgchanged
targetsdkversion>12时,设置下screensize属性即可








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

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

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

Intent的常用Flag参数:

FLAG_ACTIVITY_CLEAR_TOP: 例如现在的栈情况为:A B C D。D此时通过intent跳转到B,如果这个intent添加FLAG_ACTIVITY_CLEAR_TOP标记,则栈...
  • wh_19910525
  • wh_19910525
  • 2013年01月26日 16:07
  • 2821

java中参数传递理解分析

看了很多关于java中方法参数传递的文章,有说是按值传递的也有说是按引用
  • flag_life
  • flag_life
  • 2014年07月25日 10:10
  • 1212

Oracle常用语句

--如何用grade表的资料去更新usertable表的资料(有关联的字段userid) update usertable u set u.grade = (select g.grade from g...
  • heyuanjia520
  • heyuanjia520
  • 2014年03月03日 10:12
  • 1042

Intent的常用Flag参数

Intent的常用Flag参数: FLAG_ACTIVITY_CLEAR_TOP: 例如现在的栈情况为:A B C D 。D此时通过intent跳转到B,如果这个intent添加FLAG_ACTI...
  • jinhui157
  • jinhui157
  • 2017年04月11日 15:47
  • 335

提醒初学者注意 send(sendto) recv(recvfrom) 中的 参数flags

/* 说明:     1 这篇文章是给象我一样的初学者看的,如果您有一些经验了,请不要看,因为它会花费您宝贵的时间。      2 使用 MSDN 版本:MSDN Library -...
  • winder9898
  • winder9898
  • 2016年07月21日 21:06
  • 1411

Intent常用Flag及用法说明

参考多个博客中Intent中Flag用法,现整理如下; 首先简单说下Task和Activity的关系。   Task就像一个容器,而Activity就相当与填充这个容器的东西,...
  • anyoulan
  • anyoulan
  • 2013年07月26日 11:09
  • 480

Intent的常用Flag参数

FLAG_ACTIVITY_CLEAR_TOP: 例如现在的栈情况为:A B C D 。D此时通过intent跳转到B,如果这个intent添加FLAG_ACTIVITY_CLEAR_TOP标记...
  • lsw305264677
  • lsw305264677
  • 2015年08月21日 14:28
  • 322

Vuejs之路之--对实例生命周期的理解

用Vue框架,熟悉它的生命周期可以让开发更好的进行。 首先先看看官网的图,详细的给出了vue的生命周期: 它可以总共分为8个阶段: beforeCreate(创建前), created(...
  • codesWay
  • codesWay
  • 2017年08月02日 22:02
  • 878

Intent常用Flag介绍

intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);     FLAG_ACTIVITY_BROUGHT_TO_FRONT     ...
  • csf993981061
  • csf993981061
  • 2014年06月07日 16:30
  • 394
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:常用的使用FLAG的启动模式和横竖屏生命周期问题
举报原因:
原因补充:

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