Android从零单排 001 关于activity的几个问题 -异常的生命周期

2023-11-28 06:59

本文主要是介绍Android从零单排 001 关于activity的几个问题 -异常的生命周期,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

先XJB说点       

<-------------------------------------------SplashActivity-------------------------------------------------->

    既然选择了一条路,就要坚持的走下去,苦不苦,想想红军两万五,累不累,洗洗回屋上床睡.

        虽然我在这条路上走的不远,但是我知道,路漫漫其修远兮,吾将上下而求索的道理.正如<火影忍者>里面的名言: 通往梦想的道路,是没有捷径的,并且,也只有敢于绕弯路去挺而走险的人,才能让梦想实现,这也是获得成功的最重要秘诀.

             ---------------------------------无论是干什么,只有努力,去尝试才会有回报. 记住尝试,才会有可能.


        闲话就在这了,毕竟第一篇文章,也是试试手,如果有写的不好的地方,请大家见谅,当然我也会认真的检查每一个字,毕竟对自己来说,这也是一个学习的过程.可能我的技术没有那么牛13,但这就是我一直会写下去的原因.




<-------------------------------------------Main Activity---------------------------------------------->

Activty 

       如果我现在拿出生命周期的图片,然后一一介绍,你估计会把网页给关了,但是我不会让你关掉的.说点不一样的.

异常情况下的生命周期分析

 产生Act异常的情况有很多 

    1.横竖屏切换,

    虽然,我现在做应用层的App的话,已基本都是已经把android:screenOrientation="portrait"  ,就事论事,这个横竖屏切换一定要是考虑到的, 不知道大家做开发的时候,刻意的使用过onsaveInstanceState没有,在activity发生横竖屏切换的时候 ,这个回调会保存当前activity的状态,既然是作为存储,一定的在数据销毁Onstop 之前,至于跟Onpause先后关系,我就没有特意去研究,这个探索意义不大,说到存储,这个回调会用bundle对象来保存信息,至于读取,当然是在新的activity的重新创建时读取咯,就是

   @Overrideprotected void onRestoreInstanceState(Bundle savedInstanceState) {super.onRestoreInstanceState(savedInstanceState);}

    onCreate 和onRestoreInstanceState 可以拿到之前保存的bundle 来进行activity 恢复. 


2.资源内存不足,低优先级的Activity 回收.

    当前你的应用比较复杂,界面比较多的时候,某个activity 长期处于stop状态,同时系统有需要更多的内存(资源),可能会回收掉系统认为的"垃圾",当然作为回报,Android 就会用了上面提到的两个存储的回调弥补丢失信息的损失,

    举个栗子: 当你决定调用系统相机去拍照的时候,可能先生成一个地址 :uri_photo , 但是当你在onActivitiyResult 兴致勃勃的获取data->bitmap->Edit->Save (uri_photo),崩溃了?为什么,因为调用相机,是个十分吃资源的行为,你拿个老爷机,前脚去拍照,后脚给把activity当垃圾收了,等你拍完照回到之前的activity,那么你的uri_photo估计已经被降解多时了,这时候,就需要通过之前提到的回调去保存信息.

  @Overridepublic void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {//uri 请求系统相机拍照的 传入的照片地址outState.putString(uri.getPath(), "uri_key");super.onSaveInstanceState(outState, outPersistentState);}

大概就是这么个意思 最后来个图吧,毕竟第一篇,可能UI字体啥的效果不是很好,但是个人的态度跟上.毕竟搞这行,认真很重要.当然图也不是特好,先将就下,以后熟练了就好了.



这篇关于Android从零单排 001 关于activity的几个问题 -异常的生命周期的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/429244

相关文章

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

SpringSecurity整合redission序列化问题小结(最新整理)

《SpringSecurity整合redission序列化问题小结(最新整理)》文章详解SpringSecurity整合Redisson时的序列化问题,指出需排除官方Jackson依赖,通过自定义反序... 目录1. 前言2. Redission配置2.1 RedissonProperties2.2 Red

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

Android ClassLoader加载机制详解

《AndroidClassLoader加载机制详解》Android的ClassLoader负责加载.dex文件,基于双亲委派模型,支持热修复和插件化,需注意类冲突、内存泄漏和兼容性问题,本文给大家介... 目录一、ClassLoader概述1.1 类加载的基本概念1.2 android与Java Class

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结