首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

《Android编程权威指南》之Activity的生命周期篇

本章讲述 Activity 生命周期、状态以及状态切换时系统调用的方法。...activity状态图解 activity的状态( 某些场景下,暂停状态的activity可能会部分或完全可见) Nonexistent 表示 activity 不存在了,看不见了,它没有在内存里,...(发生在启动了另外的全屏 activity,或者点击了手机的主页按钮) Paused 表示 activity 在前台不能与用户交互但视图可见或部分可见。...在任何给定时间,整个系统中只有一个活动可以处于 resumed 状态。这意味着,如果一项活动进入 resumed 状态,则另一项 activity 可能会退出 resumed 状态。...Android 7.0 之后,有了多窗口模式,已经暂停的 activity 也是可见的状态,我们是希望已经暂停的 activitiy 也表现的像正常活动一样。

64510

16.Android-activity生命周期与启动模式

暂停状态 如果一个活动失去了焦点,但仍然可见(也就是说,一个新的非全尺寸或透明的活动将焦点放在了活动的顶部),那么它将被暂停。...暂停的活动是完全活动的(它维护所有状态和成员信息,并保持与窗口管理器的连接),但是在内存极低的情况下,系统可能会终止它。...它仍然保留所有的状态和成员信息,但是,它对用户来说不再可见,所以它的窗口是隐藏的,当在其他地方需要内存时,会被系统杀死。...: 当onStart ()之后或者取消暂停后,会调用该方法 onRestart() : 当取消停止后,会调用该方法 onPause() : 当另个非全尺寸或透明的活动将焦点放在了活动的顶部,那么该活动就会进入暂停状态...,然后调用该方法 onStop() : 当前活动被另个活动完全覆盖后(比如有人打电话过来),那么该活动就会进入停止状态,然后调用该方法,一般在这个方法中停止所有关于刷新界面的操作. onDestroy(

57810
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android-活动的启动模式

    " android:label="This is MainActivity"> 然后运行以后查看logcat,创建了一个实例,然后在点击按钮,不会再产生新的实例。...当然也只需要按一下Back键就可以退出。 不过当MainActivity并未处在栈顶位置,那么在启动MainActivity时,还是会创建新的实例。...新建一个SecondActivity活动,让Main的按钮启动Second,Second启动Main, 可以看到按下三次按钮以后,系统创建了两个不同的MainActivity活动, 由于在Second...然后按下Back键,直接从Third返回到Main了,在按下Back又返回到Second了,在按下Back才是退出程序了。...因为Main和Third是在一个返回栈里面的,当在Third按下Back键,Third会出栈,那么Main成为栈顶的活动,就会显示出来, 在按下Back这时返回栈已经空了,于是就显示另一个返回栈里面的内容

    68820

    Android-活动的生命周期(二)

    android:theme="@style/Theme.AppCompat.Dialog"> 使用了android:theme属性,用于给当前活动指定主题的,这里用的,android...观察活动的生命周期 启动时 依次执行onCreate(),onStart(),onResume()。...按下Back返回MainActivity 由于之前MainActivity进入停止状态,所以onRestart()执行,又会依次执行onStart()和onResume(),但onCreate()不会执行...点击第二个按钮,启动DialogActivity onPause()执行,onStop没有执行,因为DialogActivity没有完全遮挡MainActivity,只是进入暂停状态, 相应按下Back...活动被回收怎么办 当一个活动进入停止状态,有可能被系统回收,那么当有一个活动A,在A基础上启动了活动B,A进入停止状态,这时由于系统内存不足,A被回收掉,这时按下Back键还是会正常显示A,但是不会执行

    37720

    Android 系统开发_四大组件篇 -- 探讨 Activity 的生命周期

    活动状态 每个活动在其生命周期中最多可能会有 4 种状态: 1、运行状态 当一个活动位于返回栈的栈顶时,这时活动就处于运行状态。...系统最不愿意回收的就是处于运行状态的活动,因为这会带来非常差的用户体验。 2、暂停状态 当一个活动不再处于栈顶位置,但仍然可见时,这时活动就进入了暂停状态。...处于暂停状态的活动仍然是完全存活着的,系统也不愿意去回收这种活动(因为它还是可见的,回收可见的东西都会在用户体验方面有不好的影响,)只有在内存极低的情况下,系统才会去考虑回收这种活动。...3、停止状态 当一个活动不再处于栈顶位置,并且完全不可见的状态,就进入了停止状态。...场景 比如我们看以下的场景: 应用中有一个活动 A ,用户在活动 A 的基础上启动了活动 B ,活动 A 就进入了停止的状态,这个时候由于系统内存不足,将活动 A 回收掉了,然后用户按下 Back 键返回活动

    46920

    【详细】Android入门到放弃篇-YES OR NO-》各种UI组件,布局管理器,单元Activity

    application下有 android:icon(图标) android:label(标题) android:theme(主题样式) 四大组件为: activity(活动) service...答:用户界面时用户看程序的视图界面,简称UI,用视图表示,在Android中为View,是负责提供组件绘制和事件处理的,是所有UI组件的基类~ 嗯,先来了解一下Activity,生命周期,创建,配置,启动...图片来源官方: 图片 四种状态 活动状态: 当前的activity处于最顶端,位于栈顶,用户可见,使应用获取焦点。 暂停状态: activity失去焦点,但对用户可见,如:弹窗。...停止状态: activity被完全覆盖,但保持所有状态和成员信息,如点击Home效果,为暂停,当重新打开,该活动再次获得焦点。 非活动状态: activity被销毁,即退出应用。...图片 activity starts -> onCreate() -> onStart() -> onResume() -> 运行状态 弹窗 onPause() -> 暂停状态 -> onStop

    1.2K20

    探究活动Activity(2)界面跳转及生命周期

    2.Activity生命周期 活动的生命周期对任何Android开发者来说都非常重要。 2.1活动状态 活动有四种状态:运行状态、暂停状态、停止状态、销毁状态。...此时活动处于暂停状态 onStop() 这个在活动完全不可见的时候调用,他和**onPause()**的区别在于,如果启动的新活动是一个对话框式的活动,那么onPause()方法会得到执行,而onStop...然后我们进入AndroidManifest.xml文件,修改一下这个ThirdActivity的配置,如下图所示: ?...下面我们来运行一下这个项目,然后会进入到主界面:如下图所示 ? 那么这个时候回使用那些方法呢? 点击Android Studio最下方的Android Monitor ?...看一下 ? 有没有发现很熟悉,没错,这个和我们在SecondActivity界面返回到FirstActivty界面时执行的方法一样,不信你回头去看。

    1.1K20

    安卓-碎片的使用入门

    这样就完成了在活动中动态添加碎片的功能,重新运行程序,可以看到和之前相同的界面,然后点击一下按钮,效果如图4.6所示。 ?...4.3.1 碎片的状态和回调  还记得每个活动在其生命周期内可能会有哪几种状态吗?没错,一共有运行状态、暂停状态、停止状态和销毁状态这4种。...暂停状态 ​ 当一个活动进入暂停状态时(由于另一个未占满屏幕的活动被添加到了栈顶),与它相关联的可见碎片就会进入到暂停状态。...停止状态 ​ 当一个活动进入停止状态时,与它相关联的碎片就会进入到停止状态,或者通过调用FragmentTransaction的remove() 、replace() 方法将碎片从活动中移除,但如果在事务提交之前调用...总的来说,进入停止状态的碎片对用户来说是完全不可见的,有可能会被系统回收。 销毁状态 ​ 碎片总是依附于活动而存在的,因此当活动被销毁时,与它相关联的碎片就会进入到销毁状态。

    1.4K20

    Android 音乐APP(二)启动白屏优化、定位当前播放歌曲

    Android 音乐APP 启动优化 前言   Android应用冷启动时,又会短暂的黑屏或者白屏,然后才会进入主页面,黑屏是在Android版本低的时候才会出现,比如Android4.4、5.0。...正文   为了形成对比,先来看一下网易云的启动。 ? 可以看到当点击桌面的图标时,马上进入启动页,没有卡顿没有白屏,那么你再运行一下Good Music。 ?...然后进入AndroidManifest.xml。将MainActivity下的intent-filter放到SplashActivity下,作为打开应用进入的第一个页面。 ?...移动时间为1s,然后监听这个动画,当动画结束时,进入MainActivity,水道渠成。那么现在运行一下: ? GIF放上来可能有点卡帧,但是在手机上效果是相当的nice。...当页面有歌曲播放时,滑动列表会显示定位按钮,停止2s后会隐藏定位按钮,下面就是要在点击定位按钮时,定位到当前播放歌曲,虽然目前还没有播放过歌曲。只是一个选中位置。

    1K10

    《移动互联网技术》第五章 界面开发: 掌握Activity的基本概念,Activity的堆栈管理和生命周期

    在堆栈中,只有栈顶的活动可以操作,也就是说一个任务中只有一个活动处于运行状态,其他的活动都转入到后台暂停运行,Android系统会保存这些活动的状态,以便它们在转入前台时可以恢复运行。...(1) 运行状态 活动处于运行状态时,将位于栈顶,表示用户当前正在与活动进行交互操作,即:正在使用活动界面。在系统资源紧张的情况下,通常不会销毁处于运行状态的活动。...(2) 暂停状态 活动处于暂停状态时,活动界面部分可见,用户不能够对它进行操作,比如点击删除图片按钮,在图片显示界面(活动)上会弹出一个对话框,对话框让用户确认是否删除图片,对话框没有占据整个屏幕,因此显示图片的界面...如果用户启动其他活动,比如对话框式的活动,原来的活动就转为暂停状态。转移到暂停状态时,可以在onPause()函数中释放一些不用的资源,保存一些关键的数据。...碎片在运行状态是可见的,并且它所归属的活动也正在运行。当活动进入暂停状态(由于另一个未占满屏幕的活动被添加到了栈顶),它上面的碎片也会进入暂停状态。当活动停止,它上面的碎片就进入停止状态。

    22410

    Activity 生命周期及其栈管理方式

    Activity 生命周期及其栈管理方式 Android 系统用栈的形式管理 Activity , 当新的 Activity 被创建是, 会被放置到栈顶, 这个 Activity 会进入到运行状态, 而前一个...(活动)状态: ; 当 Activity 失去焦点, 但是依旧可见, 比如被非全屏的对话框遮住部分, 称之为 暂停状态 , 暂停的 Activity 依然是活动的, 但是当系统内存严重不足时, 有可能被系统结束...; 当 Activity 完全不可见时, 称之为 停止状态 , 这时 Activity 依然保持其状态以及成员信息, 不过由于此时 Activity 对用户不可见, 当系统其它地方需要内存时, 经常会被结束...; 当 Activity 由不可见变成可见时, 称之为 重启状态 , 这时 Activity 必须迅速恢复它以前的状态。...多个 Activity 的栈管理方式 多个 Activity 之间采用的是栈道管理方式, 当用户启动新的 Activity 时, 新启动的 Activity 位于栈顶,当用户按后退按钮时, 栈顶的 Activity

    1.1K20

    Android开发之Activity的生命周期以及加载模式

    在Android中Activity的生命周期莫过于Activity的创建到消亡的过程了。本篇博客就会介绍Activity生命周期中的不同阶段,通过实例的形式来窥探一下Activity的生命周期。...(1).onPause()方法:当点击跳转按钮时,运行中MainActivity就会调用onPause()变为停止状态,但仍然可见。...(3).onStop()方法:当SecondActivity处于运行状态时,MainActivity就完全不可见了,所以就会调用onStop()方法,进入完全不可见停止状态。 ?...下方的Log是点击返回按钮时所打印的Log. (1)onPause()方法:点击返回按钮后,SecondActivity会调用onPause()方法,进入暂停运行状态。...下此在进入SecondActivity中时,还是从onCreate方法进行执行。 ?

    1.1K70

    Android开发笔记(一百五十九)Android7.0的分屏模式

    首先准备一部Android7.0及以上版本的手机,按下屏幕底部的任务键,此时屏幕下方会弹出一排的任务列表。...对于开发者来说,Android官方给出了以下的编码建议: 1、一般情况下,App默认都允许分屏模式。...但有的开发者认为自己的App只有在全屏状态下才能正常使用,要是被分屏的话用起来会很难受,这时候就得对该App禁用分屏模式。...这是因为Android在任一时刻只能有唯一的Activity处于活动状态,分屏模式下打开B应用的时候,系统会先暂停A的页面,然后加载B的页面,等到B页面加载完,才去恢复A页面。...因为通常开发者会在页面暂停时也暂停播放视频,等到页面恢复时再恢复播放视频。可是一旦遇到分屏的情况,用户一边看视频,一边在另一个窗口办事,这意味着视频播放页面会经常处于“先暂停再恢复”的状态。

    1.6K20

    Activity入门—Activity生命周期及三种状态+案例

    Activity生命周期分为三种状态。运行状态,停止状态,暂停状态。 一.运行状态 当activity在最前端时,它是可见的,有焦点的,可以用来处理用户的常见的操作。如:点击,双击,长按事件等。...系统最不愿回收的就是出于此种状态的活动,这会带来非常差的用户体验。 二.暂停状态 activity依然可见,但它不再拥有焦点,即用户对它的操作没有实际意义。...当paused被覆盖返回时仍会调用该状态 4 onpause( ) 当用户进入透明的窗口时会被调用此时可以看见但是没焦点,当因内存不够会被kill掉此时会进入onResume状态 5 onStop( )...当activity被整个覆盖时进入该状态 6 onDestroy( )在activity被销毁前所调用的最后一个方法,当进程终止时会出现这种情况 7 onRestart( ) 当activity从停止状态重新启动时调用...2继续点击虚拟机的按钮,看到firstactivity调用了onpause方法暂停还是处于可见状态,此时,secondactivity经历前三个方法,完全可交互。

    5.1K10

    Activity状态和生命周期方法

    随着不同应用的运行,每个Activity都有可能从活动状态转入非活动状态,也可能从非活动状态转入活动状态。...02暂停状态(Paused) 在某些情况下,Activity对用户来说仍然是可见的,但它不再拥有焦点,即用户对它的操作是没有实际意义的。...但当内存不足时,这个暂停状态的Activity可能会被杀死。 03停止状态(Stopped) 当Activity完全不可见时,它就处于停止状态,但仍然保留着当前状态和成员信息。...04销毁状态(Killed) 当Activity运行结束,或Activity所在的进程结束时,这种状态称为销毁状态,也叫非活动状态。...关于Activity的这四种状态,是可以相互转化的,如下图所示。 ? 值得注意的时这四种状态中,运行状态和暂停状态是可见的,停止状态和销毁状态是不可见的。

    1.9K60

    安卓入门-第二章-探究活动

    4.2 活动的状态 每个活动在其生命周期中最多可能会有4种状态: 运行状态 暂停状态 停止状态 销毁状态 以下是活动的四个状态的详细解释: 状态名称 详细含义 运行状态 当一个活动位于返回栈的栈顶时,这时活动就处于运行状态...系统最不愿意回收的就是处于运行状态的活动,因为这会带来非常差的用户体验。 暂停状态 当一个活动不再处于栈顶位置,但仍然可见时,这时活动就进入了暂停状态。...处于暂停状态的活动仍然是完全存活着的,系统也不愿意去回收这种活动(因为它还是可见的,回收可见的东西都会在用户体验方面有不好的影响),只有在内存极低的情况下,系统才会去考虑回收这种活动。...停止状态 当一个活动不再处于栈顶位置,并且完全不可见的时候,就进入了停止状态。...系统仍然会为这种活动保存相应的状态和成员变量,但是这并不是完全可靠的,当其他地方需要内存时,处于停止状态的活动有可能会被系统回收。 销毁状态 当一个活动从返回栈中移除后就变成了销毁状态。

    3K20

    安卓第六夜 凡高的自画像

    按钮是最容易想到的方式。这里,我没有使用按钮,而是为一个TextView增加点击事件监听。 ?...在读取时,我们将根据键,来获得对应的数据值。数据可以在整个应用范围内调用。特定权限下,SharedPrefereces可以跨应用使用。...一个功能是监听按钮,在按钮点击后启动SelfEditActivity。另一个功能是从SharedPreferences中获得存储的键值,即用户名,再将用户名信息更新到界面上。...根据安卓的规定,MainActivity第一次运行,以及每次从暂停中复苏时,都会调用该方法。用户在SelfEditActivity修改返回后,就可以立即获得最新的数据。...运行 在"Edit Profile"中输入用户信息,提交后返回主页面,效果如下: ?

    1.2K70

    Android入门教程之Activity(生命周期,启动...)

    2. onCreate 和 onStart 的区别 activity的状态区别 onCreate在系统首次创建 Activity 时触发。Activity会在创建后进入已创建状态。...当 Activity 进入“已开始”状态时,系统会调用此回调。onStart() 调用使 Activity 对用户可见,因为应用会为 Activity 进入前台并支持交互做准备。...谈一下返回栈 首先理解android是使用Task来管理活动,一个Task就是一组存放在栈里的活动的集合,这个栈就叫做返回栈,每启动一个新的活动,就会将其放入栈顶,当我们点击back回退或调用activity...如何防止横竖屏切换(配置改变)时Activity销毁并切换 通过对AndroidManifest文件的Activity中指定(configChanges)属性: android:configChanges...该模式的 Activity 会默认进入启动它所属的任务栈,不涉及任务栈的转换。常用于防止快速连续点击而创建多个 Activity 实例。

    1.1K00
    领券