当前位置: 首页 > news >正文

Android Activity - APP 崩溃与自动重启观察记录、退出应用观察记录

APP 崩溃与自动重启观察记录

1、观察记录 1
(1)准备阶段
  1. LoginActivity
valbtnGo=findViewById<Button>(R.id.btn_go)btnGo.setOnClickListener{valintent=Intent(this,ComputeActivity::class.java)startActivity(intent)}
  1. ComputeActivity
valbtnCompute=findViewById<Button>(R.id.btn_compute)btnCompute.setOnClickListener{vala=10/0}
(2)测试
classMyApplication:Application(){overridefunonCreate(){super.onCreate()}}
奔溃,白屏 系统打印:java.lang.ArithmeticException: divide by zero APP 自动重启,打开到 LoginActivity
classMyApplication:Application(){overridefunonCreate(){super.onCreate()Thread.setDefaultUncaughtExceptionHandler{thread,throwable->throwable.printStackTrace()}}}
奔溃,白屏 系统打印:java.lang.ArithmeticException: divide by zero throwable.printStackTrace() 打印:java.lang.ArithmeticException: divide by zero APP 自动重启,打开到 LoginActivity
classMyApplication:Application(){overridefunonCreate(){super.onCreate()Thread.setDefaultUncaughtExceptionHandler{thread,throwable->throwable.printStackTrace()System.exit(0)}}}
奔溃,白屏 系统打印:java.lang.ArithmeticException: divide by zero throwable.printStackTrace() 打印:java.lang.ArithmeticException: divide by zero APP 自动重启,打开到 LoginActivity
classMyApplication:Application(){overridefunonCreate(){super.onCreate()Thread.setDefaultUncaughtExceptionHandler{thread,throwable->throwable.printStackTrace()System.exit(1)}}}
奔溃,白屏 系统打印:java.lang.ArithmeticException: divide by zero throwable.printStackTrace() 打印:java.lang.ArithmeticException: divide by zero APP 自动重启,打开到 LoginActivity
2、观察记录 2
(1)准备阶段
  1. LoginActivity
valbtnGo=findViewById<Button>(R.id.btn_go)btnGo.setOnClickListener{valintent=Intent(this,MiddleActivity::class.java)intent.putExtra("data",100)startActivity(intent)}
  1. MiddleActivity
valtvMessage=findViewById<TextView>(R.id.tv_message)valbtnGo=findViewById<Button>(R.id.btn_go)valdata=intent.getIntExtra("data",0)if(data==0){throwIllegalArgumentException("data is 0")}tvMessage.text="data:$data"btnGo.setOnClickListener{valintent=Intent(this,ComputeActivity::class.java)startActivity(intent)}
  1. ComputeActivity
valbtnCompute=findViewById<Button>(R.id.btn_compute)btnCompute.setOnClickListener{vala=10/0}
(2)测试
classMyApplication:Application(){overridefunonCreate(){super.onCreate()}}
奔溃,白屏 系统打印:java.lang.ArithmeticException: divide by zero APP 自动重启,打开到 MiddleActivity,MiddleActivity 显示:data: 100
classMyApplication:Application(){overridefunonCreate(){super.onCreate()Thread.setDefaultUncaughtExceptionHandler{thread,throwable->throwable.printStackTrace()}}}
奔溃,白屏 系统打印:java.lang.ArithmeticException: divide by zero throwable.printStackTrace() 打印:java.lang.ArithmeticException: divide by zero APP 自动重启,打开到 MiddleActivity,MiddleActivity 显示:data: 100
classMyApplication:Application(){overridefunonCreate(){super.onCreate()Thread.setDefaultUncaughtExceptionHandler{thread,throwable->throwable.printStackTrace()System.exit(0)}}}
奔溃,白屏 系统打印:java.lang.ArithmeticException: divide by zero throwable.printStackTrace() 打印:java.lang.ArithmeticException: divide by zero APP 自动重启,打开到 MiddleActivity,MiddleActivity 显示:data: 100
classMyApplication:Application(){overridefunonCreate(){super.onCreate()Thread.setDefaultUncaughtExceptionHandler{thread,throwable->throwable.printStackTrace()System.exit(1)}}}
奔溃,白屏 系统打印:java.lang.ArithmeticException: divide by zero throwable.printStackTrace() 打印:java.lang.ArithmeticException: divide by zero APP 自动重启,打开到 MiddleActivity,MiddleActivity 显示:data: 100
3、观察记录 3
(1)准备阶段
  1. LoginActivity
valbtnGo=findViewById<Button>(R.id.btn_go)btnGo.setOnClickListener{valintent=Intent(this,ComputeActivity::class.java)startActivity(intent)}
  1. ComputeActivity
valtvResult=findViewById<TextView>(R.id.tv_result)valbtnCompute=findViewById<Button>(R.id.btn_compute)btnCompute.setOnClickListener{Thread{tvResult.text="1 + 2 = 3"}.start()}
(2)测试
classMyApplication:Application(){overridefunonCreate(){super.onCreate()}}
奔溃,退回桌面 系统打印:android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
classMyApplication:Application(){overridefunonCreate(){super.onCreate()Thread.setDefaultUncaughtExceptionHandler{thread,throwable->throwable.printStackTrace()}}}
系统打印:android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. throwable.printStackTrace() 打印:android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
classMyApplication:Application(){overridefunonCreate(){super.onCreate()Thread.setDefaultUncaughtExceptionHandler{thread,throwable->throwable.printStackTrace()System.exit(0)}}}
奔溃,白屏 系统打印:android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. throwable.printStackTrace() 打印:android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. APP 自动重启,打开到 LoginActivity
classMyApplication:Application(){overridefunonCreate(){super.onCreate()Thread.setDefaultUncaughtExceptionHandler{thread,throwable->throwable.printStackTrace()System.exit(1)}}}
奔溃,白屏 系统打印:android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. throwable.printStackTrace() 打印:android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. APP 自动重启,打开到 LoginActivity
4、观察记录 4
(1)准备阶段
  1. LoginActivity
valbtnGo=findViewById<Button>(R.id.btn_go)btnGo.setOnClickListener{valintent=Intent(this,ComputeActivity::class.java)startActivity(intent)}
  1. ComputeActivity
valbtnCompute=findViewById<Button>(R.id.btn_compute)btnCompute.setOnClickListener{valname:String?=nullvallength=name!!.lengthprintln(length)}
(2)测试
classMyApplication:Application(){overridefunonCreate(){super.onCreate()}}
奔溃,白屏 系统打印:java.lang.NullPointerException APP 自动重启,打开到 LoginActivity
classMyApplication:Application(){overridefunonCreate(){super.onCreate()Thread.setDefaultUncaughtExceptionHandler{thread,throwable->throwable.printStackTrace()}}}
奔溃,白屏 系统打印:java.lang.NullPointerException throwable.printStackTrace() 打印:java.lang.NullPointerException APP 自动重启,打开到 LoginActivity
classMyApplication:Application(){overridefunonCreate(){super.onCreate()Thread.setDefaultUncaughtExceptionHandler{thread,throwable->throwable.printStackTrace()System.exit(0)}}}
奔溃,白屏 系统打印:java.lang.NullPointerException throwable.printStackTrace() 打印:java.lang.NullPointerException APP 自动重启,打开到 LoginActivity
classMyApplication:Application(){overridefunonCreate(){super.onCreate()Thread.setDefaultUncaughtExceptionHandler{thread,throwable->throwable.printStackTrace()System.exit(1)}}}
奔溃,白屏 系统打印:java.lang.NullPointerException throwable.printStackTrace() 打印:java.lang.NullPointerException APP 自动重启,打开到 LoginActivity
5、观察记录 5
(1)准备阶段
  1. LoginActivity
valbtnGo=findViewById<Button>(R.id.btn_go)btnGo.setOnClickListener{valintent=Intent(this,ComputeActivity::class.java)startActivity(intent)}
  1. ComputeActivity
valbtnCompute=findViewById<Button>(R.id.btn_compute)btnCompute.setOnClickListener{Thread{vala=10/0}.start()}
(2)测试
classMyApplication:Application(){overridefunonCreate(){super.onCreate()}}
奔溃,白屏 系统打印:java.lang.ArithmeticException: divide by zero APP 自动重启,打开到 LoginActivity
classMyApplication:Application(){overridefunonCreate(){super.onCreate()Thread.setDefaultUncaughtExceptionHandler{thread,throwable->throwable.printStackTrace()}}}
系统打印:java.lang.ArithmeticException: divide by zero throwable.printStackTrace() 打印:java.lang.ArithmeticException: divide by zero
classMyApplication:Application(){overridefunonCreate(){super.onCreate()Thread.setDefaultUncaughtExceptionHandler{thread,throwable->throwable.printStackTrace()System.exit(0)}}}
奔溃,白屏 系统打印:java.lang.ArithmeticException: divide by zero throwable.printStackTrace() 打印:java.lang.ArithmeticException: divide by zero APP 自动重启,打开到 LoginActivity
classMyApplication:Application(){overridefunonCreate(){super.onCreate()Thread.setDefaultUncaughtExceptionHandler{thread,throwable->throwable.printStackTrace()System.exit(1)}}}
奔溃,白屏 系统打印:java.lang.ArithmeticException: divide by zero throwable.printStackTrace() 打印:java.lang.ArithmeticException: divide by zero APP 自动重启,打开到 LoginActivity

退出应用观察记录

1、观察记录 1
(1)准备阶段
valbtnTest=findViewById<Button>(R.id.btn_test)btnTest.setOnClickListener{System.exit(0)}
(2)测试
System.exit(0)
退回桌面
System.exit(1)
退回桌面
2、观察记录 2
(1)准备阶段
  1. LoginActivity
valbtnGo=findViewById<Button>(R.id.btn_go)btnGo.setOnClickListener{valintent=Intent(this,ComputeActivity::class.java)startActivity(intent)}
  1. ComputeActivity
valbtnCompute=findViewById<Button>(R.id.btn_compute)btnCompute.setOnClickListener{System.exit(0)}
(2)测试
System.exit(0)
退回桌面,白屏 APP 自动重启,打开到 LoginActivity
System.exit(1)
退回桌面,白屏 APP 自动重启,打开到 LoginActivity
3、准备阶段 3
(1)准备阶段
  1. LoginActivity
valbtnGo=findViewById<Button>(R.id.btn_go)btnGo.setOnClickListener{valintent=Intent(this,MiddleActivity::class.java)intent.putExtra("data",100)startActivity(intent)}
  1. MiddleActivity
valtvMessage=findViewById<TextView>(R.id.tv_message)valbtnGo=findViewById<Button>(R.id.btn_go)valdata=intent.getIntExtra("data",0)if(data==0){throwIllegalArgumentException("data is 0")}tvMessage.text="data:$data"btnGo.setOnClickListener{valintent=Intent(this,ComputeActivity::class.java)startActivity(intent)}
  1. ComputeActivity
valbtnCompute=findViewById<Button>(R.id.btn_compute)btnCompute.setOnClickListener{System.exit(0)}
(2)测试
System.exit(0)
退回桌面,白屏 APP 自动重启,打开到 MiddleActivity,MiddleActivity 显示:data: 100
System.exit(1)
退回桌面,白屏 APP 自动重启,打开到 MiddleActivity,MiddleActivity 显示:data: 100
http://www.jsqmd.com/news/1373991/

相关文章:

  • HeliBoard终极备份与恢复指南:如何永久保存你的个性化键盘设置
  • q在容器环境中的应用:Docker部署与CI/CD集成
  • 如何快速获取网易云音乐和QQ音乐的LRC歌词?163MusicLyrics终极指南
  • 从Replit效率翻倍看开发效能提升:环境、自动化与协作实践
  • 什么是APS排产管理软件?最详细解释与全面指南
  • Windows内存清理终极指南:5分钟掌握MemReduct轻量级内存优化工具
  • 广州增圆高端定制:全屋定制/家居定制/ENF级环保板材/衣柜定制/万华禾香板材源头厂家,深耕广州黄埔白云增城等地区,高性价比之选 - 资讯报道
  • Oracle数据库ORA-00600 [2662]错误解析与SCN风暴处理
  • .NET Core 数据安全与加密实践:保护敏感信息的完整方案
  • AMD ROCm终极指南:从零开始快速掌握开源GPU计算平台
  • 长沙管道疏通怎么避坑?从需求判断到服务商挑选完整指南 - 超人防水
  • 「架构重塑,运维焕新」——助力国联民生证券合并后的一体化运维体系与运维团队重构之路
  • 加shield和ndr rule有什么区别?
  • 如何优化Minecraft服务器:用Paper解决游戏卡顿与机制不一致问题
  • 学工系统介绍及使用指南
  • OpenClaw版本升级与自动更新机制详解
  • RStartHere推荐的高效数据转换工具:dplyr和data.table使用对比
  • 2026年辽宁省沈阳五大职业技术学校推荐!2026 最新推荐出炉,沈阳爱玲职业技术学校优势突出 - 资讯报道
  • 7个必备Claude Code技能:PR自动化、代码审查与TDD全流程
  • PSO优化FCM聚类在电力负荷分析中的Matlab实现
  • 服务网格上线前:微服务治理的验收清单
  • 南宁茅台回收如何找到口碑好又可靠的门店?这几个细节别忽略 - 官方资讯
  • SeaweedFS在Kubernetes中创建NodePort服务的实践指南
  • Flutter在OpenHarmony上开发数字拼图游戏实践
  • Webhook CLI新手入门:5分钟学会创建和管理你的第一个网站
  • 2026年广东广州五大化妆品公司推荐!2026 最新推荐出炉,广州市万千粉丝化妆品有限公司优势突出 - 资讯报道
  • 告别“关键词报警”:从被动监听到智能研判,新一代数字声誉防线的底层逻辑
  • 冬青先令小苗采购时该找哪家供应商咨询呢?
  • 竞品对标零操作:一键解锁“同等级“报告重塑效率基准
  • 2026年水电数字孪生开发解决方案-规划篇-从蓝图到技术选型,一张可落地的路线图