Android适配器 Intent Flag是关于Activity的跳转
来源:互联网 发布:华为p10如何开启4g网络 编辑:程序博客网 时间:2024/05/01 17:40
适配器:
一、Activity和Task(栈)的关系
Task就像一个容器,而Activity就相当与填充这个容器的东西,第一个东西(Activity)则会处于最下面,最后添加的东西(Activity)则会在最低端。从Task中取出东西(Activity)则是从最顶端取出。
二、界面跳转和服务的启动都会用到Intent,现在介绍Intent Flag是关于Activity的跳转
Intent intent = new Intent(this,xxx.class);
//如果activity在task存在,拿到最顶端,不会启动新的Activity
intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
//如果activity在task存在,将Activity之上的所有Activity结束掉
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//默认的跳转类型,将Activity放到一个新的Task中
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//如果Activity已经运行到了Task,再次跳转不会在运行这个Activity
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
1、standard:系统的默认模式,一次跳转即会生成一个新的实例。假设有一个activity命名为MainActivity,执行语句:
startActivity(new Intent(MainActivity.this, MainActivity.class))后,MainActivity将跳转到另外一个MainActivity,也就是现在的Task栈里面有MainActivity的两个实例。按返回键后你会发现仍然是在MainActivity(第一个)里面。
2、singleTop:singleTop 跟standard 模式比较类似。如果已经有一个实例位于Activity栈的顶部时,就不产生新的实例,而只是调用Activity中的newInstance()方法。如果不位于栈顶,会产生一个新的实例。例:当MainActivity为 singleTop 模式时,执行跳转后栈里面依旧只有一个实例,如果现在按返回键程序将直接退出。
3、singleTask: singleTask模式和后面的singleInstance模式都是只创建一个实例的。在这种模式下,无论跳转的对象是不是位于栈顶的activity,程序都不会生成一个新的实例(当然前提是栈里面已经有这个实例)。这种模式相当有用,在以后的多activity开发中,经常会因为跳转的关系导致同个页面生成多个实例,这个在用户体验上始终有点不好,而如果你将对应的activity声明为 singleTask 模式,这种问题将不复存在。
4、singleInstance: 设置为 singleInstance 模式的 activity 将独占一个task(感觉task可以理解为进程),独占一个task的activity与其说是activity,倒不如说是一个应用,这个应用与其他activity是独立的,它有自己的上下文activity。
- Android适配器 Intent Flag是关于Activity的跳转
- Android 新建activity的intent 的flag
- Android Activity 启动模式:Intent 的Flag
- Activity 、Intent的flag介绍
- Intent启动Activity的Flag
- Android的Intent Flag
- Activity的四种加载模式(Activity跳转管理) 和 Intent的常用Flag参数
- Android 笔记 -- Activity intent经常使用的 FLAG 集合
- Android的跳转flag
- 【intent】Android activity简单的跳转
- Android--Activity之间的跳转(Intent)
- 关于Intent Flag的翻译
- Android-Activity Task 与 Intent Filter Flag
- Android activity launchMode与Intent.Flag关系
- Android中Activity、Intent相关Flag介绍
- Activity的跳转Intent
- Activity入门--“生命周期”,启动模式,Intent跳转Flag方式
- Intent的Flag和Activity的Task
- 手机拍照获取不到图片?<部分手机>
- google map api v2
- Android之setXfermode 画图
- Android调用天气预报的WebService简单例子
- kernel升级
- Android适配器 Intent Flag是关于Activity的跳转
- JavaScript----疑难问题
- IOS开发之延迟执行---妙用篇
- python GUI开发 工具选择
- MySQL查询语句---单表查询
- 如何假装努力工作
- Android调用天气预报的WebService简单例子
- Anonymous的OpPetrol攻击:它是什么?会发生什么?为何要关心?
- Python多线程与单线程处理大文件的性能差异【附图】