重写Activity等Android组件构造函数的那些坑

你曾遇到的某大厂奇葩问题:Android组件化开发,组件间的Activity页面跳转 1、主工程模块,主要是APP壳,里面不涉及任何逻辑代码,只有权限等配置写在app模块下的AndroidManifest.xml中。 2、常规业务模块,该层的组件就是我们真正的业务组件了。我们通常按照功能模块来划分业务组件,例如注册登录、用户个人中心、APP的首页模块等。这里的每个业务组件都是一个小的APP,只需要修改一下对应的module的build.gradle,就可以单独编译,单独打包成APK在手机上运行。 3、功能组件,一个公共模块,所有的常规业务模块都依赖他。字符串、颜色、尺寸资源等写在该模块下,该 阅读详情

最近看了一篇文章#Effective Android# 不要重载组件的构造函数(No.1)(应该叫重写),引发思考,一直没发现这个问题,在此记下,希望和各位共同学习。废话不多说,上代码:



在继承于Activity的类MyActivity中给出带参数的构造方法

public MyActivity(Context context){
...
}


实例化:

MyActivity activity = new MyActivity(context);

运行通过!!!


但是

如果在其他界面通过如下方式跳转MyActivity时:

Intent intent = new Intent(MainActivity.this,MyActivity.class);

startActivity(intent);


会抛出如下异常:

Caused by: java.lang.InstantiationException: class com.XXX.MyActivity has no zero argument constructor


猜想:
通过Intent方式去打开一个Activity,android可能需要一个默认的无参构造方法去实例化跳转的Activity对象,此时我们已经给出了MyActivity带参的构造方法,相当于此时MyActivity无参的构造方法已经无效,所以会报没有无参构造器的异常!!!
解决:
在MyActivity中添加一个无参的构造方法!顺利通过运行


ZEMAX学习第7天-手机镜头光学系统设计全过程案例 接下来对系统微调,依次缩小CRA和畸变,首先对CRA进行依次递减(39°、38°、37°、36°、35°),目前CRA角度40度,每次下降一度进行优化,利用MAXX加OPLT一起控制,控制小于35°。可以看出在标注的三个地方镜头曲率变化,导致PY=1的光线走向奇特,因此需要对矢高进行调整,按照标注的地方依次调整(从右到左)至传函变好,越靠近右边对其余视场影响越小。3.圆锥系数值较大,透镜形状怪异;一、第1,3镜子偏厚,第4镜子偏薄,45镜子间隔边缘偏小,第5片镜子中心厚度与边缘厚度相差较大,需要控制; 阅读详情

相关推荐

用Linkboy玩转Arduino:3小时搞定智能倒车雷达(附仿真文件下载)

本文详细介绍了如何利用Linkboy图形化编程工具,在3小时内快速搭建一个基于Arduino的智能倒车雷达项目。通过仿真环境,初学者无需硬件即可学习超声波测距原理、报警逻辑设计,并完成从虚拟仿真到实体硬件的完整流程。文章提供了清晰的步骤、调试技巧及功能扩展思路,并附有仿真文件,是入门Arduino和智能硬件制作的绝佳实践指南。

weixin_29159441的博客 404

有关于同时创建了activity的构造和oncreate方法时报错问题

直接上错误log: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.iwith.smart.robot/com.iwith.smart.robot.activity.MainActivity}: java.lang.InstantiationException: java.lang.Cl

qq_33994844的博客 1046

【Zemax光学设计实训一】---单透镜光学设计

建立一个焦距为100mm、入瞳直径为25mm的单透镜系统,该透镜中心厚度为4mm,其两个面的曲率半径分别为100mm、-100mm,全视场2w=10°。该系统在可见光下工作,采用BK7玻璃,光阑设置在人射光线遇到的透镜的第一个光学表面;并对其展开优化。

yh的博客 3618

Android总结篇系列:Activity中几个主要函数详解

Activity作为Android系统中四大基本组件之一,包含大量的与其他的各大组件、intent、widget以及系统各项服务等之间的交互的函数。在此,本文主要选取实际项目开发中常用的,但完全理解又需要有一定深入了解的几个函数进行讲解,后续本文会根据需要不断更新。 1. startActivityForResult / onActivityResult / setResult 函数组合 提到...

weixin_34128534的博客 319

西电 程序设计基础课程设计 作业

当时做的程序设计课程的作业. 一共五题, 以报告的形式提交. 质量应该比较高(高傲). 完整内容在这里 高精度计算 问题描述 涉及知识点: 数组, 流程控制, 函数等 要求: 用整型数组表示10进制大整数(超过 2322^{32}232 的整数), 数组的每个元素存储大整数的一位数字, 实现大整数的加减法. 问题分析 结构设计 可将高精度整数写成一个类. 成员变量有: int a[MAXN], len; bool negative; 其中, 数组a用来存储大整数的一个数位, a[1]为个位上的数字, a

Wings 2513

AI人工智能与TensorFlow的教育科技应用

随着科技的飞速发展,AI人工智能在各个领域都展现出了巨大的潜力,教育领域也不例外。本文章的目的在于深入探讨AI人工智能与TensorFlow在教育科技中的具体应用,包括智能教学系统的开发、学生学习情况的评估与预测等方面。范围涵盖了从基础概念到实际项目应用的各个层面,旨在为教育科技工作者和相关研究者提供全面且深入的技术指导。本文将首先介绍AI人工智能和TensorFlow的核心概念及其联系,让读者对相关技术有基本的了解。接着详细讲解核心算法原理和具体操作步骤,并结合数学模型和公式进行深入分析。

AI智能探索者的博客 1697

Android Activity的构造方法

介绍Android Activity的构造方法及使用注意事项

ccpat的专栏 5967

Andriod应用开发基础项目——记账本

本项目采用Java语言编写,是一款基于Android Studio开发的简易项目,本项目可以提高Java语言编写软件的能力,同时加深对开发软件Android studio有了更深层次的掌握,很适合初学者。在项目过程中,遇到了一些挑战和问题,但通过不断的努力和学习,最终取得了成功。未来,可以还可以继续优化App的功能和性能,增加更多实用的功能,提升用户体验。

eryasd的博客 3467

Android: ViewModel> has no zero argument constructor

viewModel = ViewModelProvider( this, ViewModelProvider.AndroidViewModelFactory.getInstance(application) ).get(PDFBookDocumentViewModel::class.java) 使用上述方法加载viewModel报上述错误。如果您想为ViewModel类提供一个非零参数的构造函数,则可能必须创...

Crystal_xing的专栏 4564

使用.NET 免费开源包ViewFaceCore做一个人脸识别并注册的功能,没有比我更全的

本文介绍了一个基于WinForm的免费人脸识别系统实现方案。系统使用AForge和ViewFaceCore库,支持从USB或电脑自带摄像头采集图像,具备人脸注册和快速识别功能。硬件方面仅需普通摄像头,软件依赖多个NuGet包(如AForge.Video、ViewFaceCore等)。界面包含视频显示、图像预览和功能按钮控件,后台采用SQLServer存储用户面部特征数据。核心代码展示了人脸检测、特征提取和多线程处理逻辑,通过ViewFaceCore实现高效识别。系统具有识别速度快、准确率高的特点,适合Win

一个靠“吃代码”长大的程序猿,专治各种“Bug 饥饿症”。 817

YOLOv11的多任务学习:检测+分割+姿态估计-(扩展模型头部分支,实现多任务联合训练)

YOLOv11作为Ultralytics团队于2024年9月发布的最新YOLO系列模型,在前代版本基础上进行了多项架构创新,使其成为支持多任务学习的理想框架。其核心改进包括引入C2PSA(跨阶段局部自注意)模块,将跨阶段局部网络和自注意机制优势结合,使模型能够更有效地跨多层捕获上下文信息。C3k2模块取代了之前的C2f模块,作为CSP Bottleneck的自定义实现,使用两个较小卷积核而非一个大卷积核,在保持准确性的同时提高了效率。 多任务学习(Multi-Task Learning, MTL)在YOL

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 655

java.lang.Class<...> has no zero argument constructor。registerReceiver(myBroadcastReceiver, filter)。

registerReceiver(myBroadcastReceiver, filter);黄标报错解决方案

u011501017的博客 3016

《【一看就会】Autoware.universe的“规划”部分源码梳理》系列文章目录(持续更新中)

第零章:Planning综述 第一章:【一】全局路径生成模块——mission_planner 第二章:【二】路径行为规划模块——behavior_path_planner第一部分——behavior_path_planner模块 第三章:【二】路径行为规划模块——behavior_path_planner第二部分——behavior_path_planner_common模块(1) 第四章:【二】路径行为规划模块——behavior_path_planner第三部分——behavior_path_plan

weixin_48386130的博客 2339

安卓四大组件之Activity

安卓四大组件之Activity

似霰的博客 1926

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Android四大组件——Activity(一)

创建好的Activity只是Kotlin中的一个类,如果要使用这个Activity,则必须在安卓的配置文件AndroidManifest.xml中设置,添加下述节点,这里声明了一个Activity,并且不允许外部应用调用它。需要注意的是,这种方式新建对应的类后,需要手动继承AppCompatActivity类,并且需要手动添加onCreate回调的实现,添加相应的布局文件。(4)Intent 启动:通过 Intent,可以启动其他 Activity,实现不同界面之间的切换和交互。

2301_79188932的博客 1565

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Android Activity详解

Android Activity详解 1.什么是Activity Activity是一个Android的应用组件,它提供屏幕进行交互。每个Activity都会获得一个用于绘制其用户界面的窗口,窗口可以充满哦屏幕也可以小于屏幕并浮动在其他窗口之上。 一个应用通常是由多个彼此松散联系的Activity组成,一般会指定应用中的某个Activity为主活动,也就是说首次启动应用时给用户呈现的Ac...

fjnu_se的博客 13万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

android 怎么重写方法,Activity中那些需要重写的方法

1. onCreate, onStart, onResume, onPause, onStop, onRestart, onDestroy如果连这7个方法都不清楚的话,那么就该从头开始看Android了。下图是Activity的生命周期,加深记忆用:2. onNewIntent在AndroidManifest.xml将某activity的android: launchMode设置为singleTa...

weixin_31889919的博客 1882

Android |(七)四大组件1 Activity

一二三

codeSong的博客 2336

Android基础-四大组件之activity(基础)

Android四大组件分别为:1.活动Activity,2.服务Service,3.广播Broadcast Receiver,4.内容提供器Content Provider 此文章后面不完整,有时间还会补全,简书id同名,文章同步。 Activity基础 1.定义:Activity是一个包含视图界面的应用程序组件,负责与用户交互。 这是选择empty activity后新建一个项目,android...

小蜉蝣星蔚的博客 5997

安卓开发-03-四大组件

Android开发的四大组件

ning_xiao_xuan的博客 4798

安卓四大组件之——Activity

这是官网给出的概念总的来说就是Activity是一个应用程序中为提供交互界面的组件,同时一个APP中可以存在多个Activity注意:1. onPause()和onStop()被调用的前提是: 打开了一个新的Activity!而前者是旧Activity还可见的状态;后者是旧Activity已经不可见! 2. 另外,亲测:AlertDialog和PopWindow是不会触发上述两个回调方法的~创建 1.自定义Activity类名,继承Activity类或者它的子类。例如,在一个Activity中,只想实现一个

Yiky的博客 1万+

安卓统一添加activity切换动画

安卓统一添加activity切换动画背景说明在实际 的应用开发过程中各种动画的使用不仅能使用户感觉起来更加流畅而且合适的动画效果可以帮助用户快速的熟悉应用操作,对提升用户体验来说,动画是必不可少的。在安卓2.0之后,安卓提供了一个很方便的API用来设置安卓界面切换动画:overridePendingTransition(EnterAnim, ExitAnim);发现问题但是这里有一个缺点,

GcsSloop 3222

【Android】安卓四大组件之Activity(二)

【Android】安卓四大组件之Activity(二) 前言 在这篇文章之前,我已经写过了一篇有关Activity的内容,是关于activity之间的页面跳转和数据传递,而这篇文章着重强调的是Activity中的有关生命周期的理解。 1、什么是生命周期? 在之前学习Java的时候,Java中的一个类的对象就涉及到了生命周期,包括它的生成、作用、回收等等。 在Android中也有差不多的生命周期的概念,是针对Activity的。 首先,给出安卓开发文档中对生命周期的介绍:了解 Activity 生命周期 在官

woodwhale的博客 1137

Android 四大组件之Activity详解

对Android的activity的一个系统性的归纳整理,里面详细介绍了activity的创建、生命周期、启动方式、基本状态、启动模式、常见的一些问题等。

li847250110的博客 5万+

android的activity组件,通过实例简单讲解Android App中的Activity组件

Activity是Android应用中,最直接与用户接触的组件,它负责加载View组件,使其展现给用户,并保持与用户的交互。所有的Activity组件均需要继承Activity类,这是一个Content的间接子类,包装了一些Activity的基本特性。View组件是所有UI组件、容器组件的基类,也就是说,它可以是一个布局容器,也可以是一个布局容器内的基本UI组件。View组件一般通过XML布局资源...

weixin_30119469的博客 486

Android研发安全2-Activity组件安全(下)

这篇文章是Android研发安全之Activity组件安全第二篇,本文将给大家分享Activity界面劫持方面的预防知识。什么是Activity劫持       简单的说就是APP正常的Activity界面被恶意攻击者替换上仿冒的恶意Activity界面进行攻击和非法用途。界面劫持攻击通常难被识别出来,其造成的后果不仅会给用户带来严重损失,更是移动应用开发者们的恶梦。举个例子来说,当用户打开安卓手机

Android研发专栏 9506
下一篇: 不要在Android的Application对象中缓存数据
android_cyw
博客等级 码龄11年 1粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值