android 退出应用没有走ondestory方法,[Android基础论]为何Activity退出之后,系统没有调用onDestroy方法?...
首先,问题是如何出现的?
晚上复查代码,发现一个activity没有调用自己的ondestroy方法
我表示非常的费解,于是我检查了下代码。
发现再finish代码之后接了如下代码
finish();
System.exit(0);//这就是罪魁祸首
为什么这样写会出现问题
System.exit(0);//
//看一下函数的原型
public static void exit (int code)
//
Added in API level 1
//大意可以解释为,调用此方法,将会停止javaVM的执行,相当于杀死了程序
Causes the VM to stop running and the program to exit with the given exit status. If runFinalizersOnExit(boolean) has been previously invoked with a true argument, then all objects will be properly garbage-collected and finalized first.
既然我们理解了,调用exit之后,程序会被杀死,整个程序都被意外(人为)的杀死了,这是非正常情况,故,Activiy的生命周期也不会继续执行了。很好的解释了为什么ondestroy不会执行的疑问。
那么,问题是如何解决的?
将
system.exit(0);
这段代码从finish()之后移除,结果程序生命周期,执行正常。问题得到解决。
附注:我觉得这句话并不是必须写的,作为安卓开发者,应当使用finish来合理的控制app的界面,而生命周期交给系统去处理,这样才能编写出健壮的程序代码。
原文:http://www.cnblogs.com/louzhuhaha/p/4216712.html
android 退出应用没有走ondestory方法,[Android基础论]为何Activity退出之后,系统没有调用onDestroy方法?...相关推荐
- android 为什么不调用onDestroy方法关闭activity
前天有个同学突然咨询我,说关闭android的activity,为什么不直接调用ondestroy方法,而是要调用activity.finish(). 我这里总结下我的理解: 1.我们知道onDest ...
- android 退出应用没有走ondestory方法,Android退出应用最优雅的方式(改进版)
我们先来看看几种常见的退出方法(不优雅的方式) 一.容器式 建立一个全局容器,把所有的Activity存储起来,退出时循环遍历finish所有Activity import java.util.Arr ...
- 输出字符串引用名java_将方法名称作为字符串给出时,如何调用Java方法?
天涯尽头无女友 对于那些想要在Java 7中使用直接代码示例的人:Dog 类:package com.mypackage.bean;public class Dog { private String ...
- android bindservice方法,android BindService
1.绑定服务 1.1绑定方式 通过服务链接(ServiceConnection)或直接获取Service中状态和数据信息 服务链接能够获取Service的对象,因此绑定Service的组件可以调用 S ...
- activity中fragment 返回键不退出_分享一波阿里Android客户端面经,我竟连这都答不上来?...
今天整理了电脑,发现了几个月前总结了一半的阿里面经,想起来了去年秋招不愉快的阿里一面,今天分享给大家.希望大家前事不忘后事之师,吸取经验教训. 一面(挂) 1.点击图标,应用打开,点击home键,重新 ...
- 【Android NDK 开发】JNI 方法解析 ( C/C++ 调用 Java 方法 | 函数签名 | 调用对象方法 | 调用静态方法 )
文章目录 I . 调用 Java 方法流程 II . 获取 jclass 对象 ( GetObjectClass ) III . 获取 jclass 对象 ( FindClass ) IV . JNI ...
- android调用fragment的方法,AndroidX下使用Activity和Fragment的变化
原标题:AndroidX下使用Activity和Fragment的变化 原文:How AndroidX changes the way we work with Activities and Frag ...
- 在android apk中调用@hide方法
在android应用开发过程中我们经常会遇到不能使用,但却可以在源码中查到的方法,这些方法大多有/**@hide*/标记,如果想要调用hide方法或类我们就要重新打包sdk.如果有源码的话,可以去掉源 ...
- Android的onDestroy方法,android – 活动方法:onCreate()和onDestroy()
当第一次创建一个活动时,系统会调用OnContentChanged()方法作为第一个方法,当一个活动被杀死时,系统的最后一次调用是OnDetachedFromWindow()方法,但是android文 ...
- android activity生命周期(一)onCreate和onDestroy方法
首先我们来说一下什么是生命周期 平时我们在开发软件的时候软件就有生命周期,同样 很多的事物都有自己的生命周期 一般来说 生命是不由自己的主观意识控制的. 举个例子 :人的生命周期:从出生-->到 ...
最新文章
- Hoogle之装饰模式设计手机(下)
- PHP实现四种基本排序算法
- 【开发技巧】解决微信author2.0回调内网本地问题
- 如何能include外键对应的表?向博客园的兄弟请教!
- 分布式事务实践 解决数据一致性 分布式事务实现:Event Sourcing模式
- UVA10154 Weights and Measures【0-1背包】
- 彩超中ri是什么意思_胎儿b超ri是什么意思
- MATLAB生成数组
- 解决办法:GTK+ 2.x symbols detected
- 章节1 概述 - Segger SystemView使用手册(译文)
- icem合并面网格_icem 混合网格 流沙
- 一级造价工程师(安装)- 管理笔记
- Pikachu-敏感信息泄露
- 读书笔记(十二)--穷爸爸,富爸爸
- GCPC 2013_A Boggle DFS+字典树 CSU 1457
- 阿里云后台运行python程序(后台运行scrapy爬虫)的方法
- Shelve Silently 静默搁置 Android Studio Git 功能
- 从1-100求质数 Python for else
- MyLinearLayout 之 初级学习经验
- 赌徒谬误论,投掷硬币,连续5次都是正面朝上,第6次正面反面的概率?