首先,问题是如何出现的?

晚上复查代码,发现一个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方法?...相关推荐

  1. android 为什么不调用onDestroy方法关闭activity

    前天有个同学突然咨询我,说关闭android的activity,为什么不直接调用ondestroy方法,而是要调用activity.finish(). 我这里总结下我的理解: 1.我们知道onDest ...

  2. android 退出应用没有走ondestory方法,Android退出应用最优雅的方式(改进版)

    我们先来看看几种常见的退出方法(不优雅的方式) 一.容器式 建立一个全局容器,把所有的Activity存储起来,退出时循环遍历finish所有Activity import java.util.Arr ...

  3. 输出字符串引用名java_将方法名称作为字符串给出时,如何调用Java方法?

    天涯尽头无女友 对于那些想要在Java 7中使用直接代码示例的人:Dog 类:package com.mypackage.bean;public class Dog { private String  ...

  4. android bindservice方法,android BindService

    1.绑定服务 1.1绑定方式 通过服务链接(ServiceConnection)或直接获取Service中状态和数据信息 服务链接能够获取Service的对象,因此绑定Service的组件可以调用 S ...

  5. activity中fragment 返回键不退出_分享一波阿里Android客户端面经,我竟连这都答不上来?...

    今天整理了电脑,发现了几个月前总结了一半的阿里面经,想起来了去年秋招不愉快的阿里一面,今天分享给大家.希望大家前事不忘后事之师,吸取经验教训. 一面(挂) 1.点击图标,应用打开,点击home键,重新 ...

  6. 【Android NDK 开发】JNI 方法解析 ( C/C++ 调用 Java 方法 | 函数签名 | 调用对象方法 | 调用静态方法 )

    文章目录 I . 调用 Java 方法流程 II . 获取 jclass 对象 ( GetObjectClass ) III . 获取 jclass 对象 ( FindClass ) IV . JNI ...

  7. android调用fragment的方法,AndroidX下使用Activity和Fragment的变化

    原标题:AndroidX下使用Activity和Fragment的变化 原文:How AndroidX changes the way we work with Activities and Frag ...

  8. 在android apk中调用@hide方法

    在android应用开发过程中我们经常会遇到不能使用,但却可以在源码中查到的方法,这些方法大多有/**@hide*/标记,如果想要调用hide方法或类我们就要重新打包sdk.如果有源码的话,可以去掉源 ...

  9. Android的onDestroy方法,android – 活动方法:onCreate()和onDestroy()

    当第一次创建一个活动时,系统会调用OnContentChanged()方法作为第一个方法,当一个活动被杀死时,系统的最后一次调用是OnDetachedFromWindow()方法,但是android文 ...

  10. android activity生命周期(一)onCreate和onDestroy方法

    首先我们来说一下什么是生命周期 平时我们在开发软件的时候软件就有生命周期,同样 很多的事物都有自己的生命周期 一般来说 生命是不由自己的主观意识控制的. 举个例子 :人的生命周期:从出生-->到 ...

最新文章

  1. Hoogle之装饰模式设计手机(下)
  2. PHP实现四种基本排序算法
  3. 【开发技巧】解决微信author2.0回调内网本地问题
  4. 如何能include外键对应的表?向博客园的兄弟请教!
  5. 分布式事务实践 解决数据一致性 分布式事务实现:Event Sourcing模式
  6. UVA10154 Weights and Measures【0-1背包】
  7. 彩超中ri是什么意思_胎儿b超ri是什么意思
  8. MATLAB生成数组
  9. 解决办法:GTK+ 2.x symbols detected
  10. 章节1 概述 - Segger SystemView使用手册(译文)
  11. icem合并面网格_icem 混合网格 流沙
  12. 一级造价工程师(安装)- 管理笔记
  13. Pikachu-敏感信息泄露
  14. 读书笔记(十二)--穷爸爸,富爸爸
  15. GCPC 2013_A Boggle DFS+字典树 CSU 1457
  16. 阿里云后台运行python程序(后台运行scrapy爬虫)的方法
  17. Shelve Silently 静默搁置 Android Studio Git 功能
  18. 从1-100求质数 Python for else
  19. MyLinearLayout 之 初级学习经验
  20. 赌徒谬误论,投掷硬币,连续5次都是正面朝上,第6次正面反面的概率?

热门文章

  1. SQL Server 2016 SP1 标准版等同企业版?!
  2. HTTP缓慢拒绝服务攻击
  3. 最全iOS数据存储方法介绍:FMDB,SQLite3 ,Core Data,Plist,Preference偏好设置,NSKeyedArchiver归档...
  4. 项目范围管理论文提纲
  5. 快排序和堆排序,最小堆、最大堆
  6. windows xp共享访问提示“拒绝访问”的故障处理步骤
  7. 案例:如何解决难以重现的BUG
  8. FTP服务器架设速成手册
  9. vue返回上一页面时回到原先滚动的位置
  10. RabbitMQ的六种工作模式(三)