Activity生命周期启动方式及启动模式
来源:互联网 发布:vb select语句 编辑:程序博客网 时间:2024/05/21 15:01
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher);
bundle.putParcelable("image",bitmap);
intent.putExtras(bundle);
startActivity(intent);
imageView.setImageBitmap(bitmap);
当前的activity启动了另外一个activity时,新的activity就被压入堆顶并获取焦点。前一个activity仍在堆里,但是处于停止状态。当activity停止时,系统会保存它停止时用户界面的状态。如果用户按下了返回键,当前的activity就会从堆中被弹出(activity被销毁了)并且先前的activity被恢复了(先前activity的UI状态被系统记住了)。堆中的activity从不会被重新放置,只会从堆中弹出或是压入--activity启动时被压入堆中,用户使用后退键从activity离开时从堆中弹出。后退堆(back stack)本身就和“后进先出”的对象结构执行的操作一样。图表1展示了多个activity之间的进程,用时间轴的方式使得这些行为变得可视化,并展示了每个时间点上后退堆的情况。
图1 在后退堆(back stack)里,如何添加一个新activity任务的展示。当用户按下返回键,当前的activity被销毁,前一个被恢复。
你在mainfest里申明一个activity时,你可以使用<activity>元素里的launchMode 属性。
launchMode 属性指定了关于activity如何被加载到任务(task)的说明。有四个可以指定给launchMode 属性的不同的读取模式:
"standard"(默认模式)
默认地,系统在activity开始的任务(task)里给它创建一个新的实例并把intent发送给它。该activity可以被实例化多次,每个实例都可以属于不同的任务(task),并且一个任务(task)里也可以有它的多个实例。
"singleTop"
在当前任务(task)的顶部,如果一个activity的实例已经存在了,那么系统会通过调用该实例的 onNewIntent()方法来把intent发送给它,而不是再创建一个新的实例。activity可以被实例化多次,每个实例都可以属于不同的任务(task),并且一个任务(task)里也可以有它的多个实例(当activity处于后退堆(back stack)的顶部时,不是它的一个现有实例)。
例如,假设一个任务(task)的后退堆(back stack)由根activity A和activity B、C、D组成(D在顶部)。类型D的intent到达了。如果D是默认的启动模式"standard",那么D的一个新实例被启动了,堆里的内容就变为A-B-C-D-D。虽然如此,但是,如果D的启动模式是"singleTop",那么,已存在的D的实例就会通过onNewIntent() 方法收到该intent,这是因为它在堆顶--堆里的内容仍然为A-B-C-D。但是,如果类型B的intent到达,那么即使B的启动模式是"singleTop",系统也仍然会新实例化一个B的实例并把它添加到 堆里。
注意:activity的新实例被创建时,用户可以通过按下返回键返回到先前的activity。但是,当一个activity已经存在的实例处理了一个新的intent,那么,在一个新的intent进入onNewIntent() 方法之前,用户不能通过按下返回键返回activity的状态。
注意:尽管在新的任务(task)里启动了该activity,但是按下返回按钮时,用户仍然会回到先前的activity。
"singleInstance"
与"singleTask"类似,不一样的是系统不会把其它的activity发送到拥有"singleInstance"启动模式activity的任务(task)里。以该模式启动的activity在任务(task)只会有一个;任何以该模式启动的activity都会在一个单独的任务(task)里被打开。
- Activity生命周期启动方式及启动模式
- Activity 生命周期及启动模式
- Activity生命周期、启动方式及常见Activity
- 【Activity】Activity生命周期及启动模式
- Activity生命周期及启动模式深入理解
- Activity的生命周期及启动模式整理
- Android Activity生命周期及启动模式详解
- 一、Activity生命周期及启动模式
- Android之Activity生命周期及启动模式
- android activity 生命周期及启动模式
- Android Activity的生命周期及启动模式
- Activity生命周期与启动方式
- Activity入门--“生命周期”,启动模式,Intent跳转Flag方式
- interView - Activity生命周期,启动模式
- Activity生命周期和启动模式
- Activity生命周期和启动模式
- Activity生命周期和启动模式
- Activity生命周期和启动模式
- Spark调优之Tuning Spark(Part 1)
- 如何对innerHTML获得的内容转义
- Unity3d代码获取隐藏物体
- python简单学习:类、类与对象、继承、读取文件
- BT下载原理简介
- Activity生命周期启动方式及启动模式
- 大数加法
- Codeforces Round #420 (Div. 2) D
- 线程死锁
- 时间的获取与格式转换
- OpenCV学习笔记(27) 灰度直方图均衡化 练习
- log4j的8个日志级别(OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL)
- spring mvc redirect 重定向 跳转并传递参数
- 进程注入后门工具Cymothoa