Application的onTerminate能监听应用退出吗?
[TOC]
概述
我们在集成Application的时候发现Android的Application中有一个公开的回调方法:
1 | onTerminate() |
继而想当然的认为该方法即是Android的整个App应用退出后的回调,因为Terminate的词面意思就是结束,终结嘛。那么onTerminate在Android的App全部结束后回调,真的是这样的吗?
答案是:是这样,也不是这样。是这样是因为onTerminate()会在Android的模拟器上触发回调。说它不是这样,是因为onTerminate()不会在Android真实的机器设备上触发。
先看Android官方对于onTerminate函数的文档解释:
1 | /** |
真相大白了,这段文档明确的解释说,Android中Application的onTerminate()函数只是用来在Android设备的模拟器中,如果application退出才会回调。但是,在产品级(即运行在Android真机设备)应用App,不会再整个App退出时候回调这个onTerminate()函数。
然而试想,又有谁会开发一个App目标运行设备仅仅是模拟器而不是真机呢?开发一个App肯定是打算运行在真实的Android设备上的啊,所以,在真实的Android机器上跑,application的onTerminate()就是一个废物,不会被触发,也就是无效的回调函数。开发者不要错误的使用onTerminate(),想当然的认为在Android真机设备上,onTerminate()会在App应用退出时候回调和触发。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 麦溪·在路上!
评论
ValineDisqus