Android问题笔记 - 关于SuperNotCalledException报错异常信息的解决方案

  • 点击跳转=>Unity3D特效百例
  • 点击跳转=>案例项目实战源码
  • 点击跳转=>游戏脚本-辅助自动化
  • 点击跳转=>Android控件全解手册
  • 点击跳转=>Scratch编程案例
  • 点击跳转=>软考全系列

👉关于作者

专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎底部卡片私我,交流让学习不再孤单

在这里插入图片描述

👉实践过程

在这里插入图片描述
上图中这个错误是同事在继承Activity重写父类的onCreate方法时由于没有调用super.onCreate()而引发的问题,属于运行时异常,诸如activity的其他周期方法也会出现类似问题。由此可见,android api中当我们继承某些类重写一些方法时,有些是要求必须调用super方法的。

但是这个异常不常见,如果遇到这样的异常有两种可能:

  1. 一种是在Activity中的生命周期中的方法中没有复写父类的方法
  2. 另一种是在Fragment中的生命周期中的方法中没有复写父类的方法

知道了原因我们解决起来就很简单了,

//探讨:根据报错信息的提示:由于没有销毁fragment,导致activity没法销毁。扭头一看原来还真的是这样,直接贴代码@Override
public void onDestroy() {//......
}//在当前的fragment类的onDestroy方法里没有调用父类的onDestroy()方法,导致了异常的发生。正确的代码应该是:@Override
public void onDestroy() {super.onDestroy();//......
}

知道了解决方法,我们再看下 Activity 源码。
在这里插入图片描述

我们不难发现这个类里好多on开头的周期方法还有好多perform开头的执行周期方法的方法
在这里插入图片描述
在这里插入图片描述
从函数方法名我们就可以猜出这个方法应该是调用了onStart()方法,方法里有把mCalled置为false的操作,这个mCalled是类里的一个全局变量,接着调用了callActivityOnStart(this)方法,然后我们再看看第二幅图中的callActivityOnStart(Activity activity)函数,代码很少,就一行,那就是调用onStart()方法,再瞅瞅第三幅图是onStart方法,有一行mCalled = true 的操作,然后回到第一幅图中往下看有个if语句判断mCalled,可以看出如果不执行this.onStart()方法就没法把mCalled置为true,这就会导致 !mCalled 值为true肯定就执行这个抛错语句。可能这时候大家会想我们可以不调用super,直接在子类里把mCalled变量改为true不就可以了吗,可是这个mCalled变量(boolean mCalled;)是缺省类型的,不能被子类调用。所以只能通过调用super方法的形式来达到程序正常运行的效果。

👉其他

📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://zhima.blog.csdn.net/
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

温馨提示点击下方卡片获取更多意想不到的资源。
空名先生

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/112577.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

主机重启后k8s kubelet无法自动启动问题解决梳理

1.问题描述 OS Version:CentOS Linux release 7.9.2009 (Core) K8S Version:Kubernetes v1.20.4 K8S安装配置完成后,重启服务器发现,kubelet没有正常启动(systemctl status kubelet) 命令: systemctl status kubelet [root@centos79-3 ~]# systemctl status kubelet ●…

使用 pyspark 进行 Classification 的简单例子

This is the second assignment for the Coursera course “Advanced Machine Learning and Signal Processing” Just execute all cells one after the other and you are done - just note that in the last one you have to update your email address (the one you’ve u…

Java设计模式之过滤器模式(Filter Pattern)

过滤器模式(Filter Pattern)是一种常用的设计模式,它用于通过一系列条件来过滤对象集合,并将满足条件的对象保留下来。该模式可以帮助我们在不修改原始对象集合的情况下,根据特定的条件对集合进行筛选和处理。 在过滤…

互联网Java工程师面试题·Java 面试篇·第一弹

目录 1、Java 中能创建 volatile 数组吗? 2、volatile 能使得一个非原子操作变成原子操作吗? 3、volatile 修饰符的有过什么实践? 4、volatile 类型变量提供什么保证? 5、10 个线程和 2 个线程的同步代码,哪个更容…

使用 ClickHouse 深入了解 Apache Parquet (二)

【squids.cn】 全网zui低价RDS,免费的迁移工具DBMotion、数据库备份工具DBTwin、SQL开发工具等 这篇文章是我们的 Parquet 和 ClickHouse 博客系列的第二部分。在这篇文章中,我们将更详细地探讨 Parquet 格式,重点介绍使用 ClickHouse 读写文…

Xline 源码解读(四)—— CURP 状态机引擎

在上一篇源码解读的文章(Xline 源码解读(三) —— CURP Server 的实现)中,我们简单阐述了Xline 的 Curp Server 是如何实现的。接下来,就让我们话接上回,继续深入地来了解 Curp Server 中的一些…

利用Python爬虫获取某乎热榜

如今,某乎必须要登录才能查看相关话题内容,给我们的日常造成了极大的不便,今天我就教大家如何利用简单的代码,绕开登录限制。 准备工作 配置好python运行环境,推荐 pycharm。复制下面的源代码,运行&#x…

LNMP架构部署Discuz论坛系统

文章目录 LNMP架构&部署Discuz论坛系统部署LNMP架构环境前期准备安装Nginx安装mariadb安装php配置nginx 部署Discuz论坛系统下载Discuz论坛系统代码包部署Discuz论坛系统配置虚拟主机安装Discuz论坛访问站点尝试注册一个账号 LNMP架构&部署Discuz论坛系统 部署LNMP架构…

mongodb创建管理账户步骤

本文以ubuntu系统配置为例: 1.数据库进入和查看指令 mongo ##进入账户 show dbs ##查看有哪些数据库 use admin ##进入管理员数据库admin show collections ##查看有哪些数据集合 db.system.users.find() ##查看当前有哪些管理员账号2.创建管理员账号 …

试着写几个opencv的程序

一、认识opencv OpenCV(Open Source Computer Vision Library)是一个开源计算机视觉库,旨在提供丰富的图像处理和计算机视觉功能,以帮助开发者构建视觉应用程序。OpenCV最初由英特尔开发,现在由社区维护和支持。它支持…

@ResponseBodyAdvice @RequestBodyAdivce失效

背景 最近项目要有向外部提供服务的能力,但是考虑到数据安全问题,要对接口进行加解密;实现加解密的方案有很多,比如过滤器、拦截器、继承RequestResponseBodyMethodProcessor什么的,不过我最近正在了解ResponseBodyAd…

【华为OD机试】HJ26 字符串排序

描述 编写一个程序,将输入字符串中的字符按如下规则排序。 规则 1 :英文字母从 A 到 Z 排列,不区分大小写。 如,输入: Type 输出: epTy 规则 2 :同一个英文字母的大小写同时存在时,…

Day5力扣打卡

打卡记录 对角线上不同值的数量差(矩阵对角线遍历 前缀和) 链接 思路:由于任意行 i 与 列 j,满足对角线上 i j t 的关系,t 的范围为 [1 - n, m - 1],设 s t n,可以得到 s的范围为 [1, n …

C#WPF Prism框架区域管理应用实例

本文实例演示C#WPFPrism框架区域管理应用实例 目录 一、Prism框架区域 二、不使用Prism框架的RegionManager 三、使用Prism框架的RegionManager 一、Prism框架区域

计算机网络学习笔记(四):网络层(待更新)

目录 4.1 IP地址、子网划分、合并超网 4.1.1 IP地址、子网掩码、网关 4.1.2 IP地址的编址方法1:IP地址分类(A~E类地址、保留的IP地址) 4.1.4 IP地址的编址方法2:子网划分(等长、变长) 4.1.5 IP地址的编…

Adobe 推出 Photoshop Elements 2024 新版

🦉 AI新闻 🚀 Adobe 推出 Photoshop Elements 2024 新版 摘要:Adobe 最新发布 Photoshop Elements 2024 版本,新增引入 AI 功能,提供匹配颜色、创建照片卷、一键选择照片天空或背景等新功能,界面也进行了优化更新。本次发布重点加强了 AI 支持,简化复杂…

打卡go学习第一天

8.1 下面展示一些 代码。 package mainimport ("fmt""net""os""time" )type Clock struct {Name stringAddr string } func main() {clocks : []Clock{{Name: "New York", Addr: "localhost:8000"…

spring cloud Eureka集群模式搭建(IDEA中运行)

spring cloud Eureka集群模式搭建(IDEA中运行) 新建springboot 工程工程整体目录配置文件IDEA中部署以jar包形式启动总结 新建springboot 工程 新建一个springboot 工程,命名为:eureka_server。 其中pom.xml文件为: …

OnlyOffice documentType类型值

参考官网说明: https://api.onlyoffice.com/editors/config/#documentType 其值为:word | cell | slide

SpringCloud: feign整合sentinel实现降级

一、加依赖&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache…