没有合适的资源?快使用搜索试试~ 我知道了~
mxn21#mxn21.github.io#2015-12-2-onTerminate和onLowMemory的使用1
需积分: 0 0 下载量 195 浏览量
2022-07-25
14:34:53
上传
评论
收藏 7KB MD 举报
温馨提示
试读
1.OnLowMemory被回调时,已经没有后台进程 2.OnLowMemory是在最后一个后台进程被杀时调用,一般情况是low memory killer 杀
资源推荐
资源详情
资源评论
---
layout: post
author: mxn
titile: onTerminate和onLowMemory的使用
category: 技术博文
tag: android
---
关于Application类有以下公开方法:
![](https://raw.githubusercontent.com/mxn21/mxn21.github.io/master/public/img/img136.jpg)
其中最常用的就是onCreaet()、onTerminate()以及onLowMemory()方法,onCreaet()它会在这个类实例化的时候调用(这个地方需要十分注意,
它只会在程序第一次启动的时候调用,不是每次都调用,因为Application类会在创建包的时候初始化),onTerminate()会在app关闭的时候调用,
onLowMemory()是在内存过低的情况下调用的。那onTerminate()是干什么用的呢?网上介绍说是在程序终结的时候调用,从下面的实例中也是这样用的。
不过在Google的开发文档以及很多书籍对这个类的用法很少提及,但实际开发情况是如何的呢。
### onTerminate的使用
onTerminate()会在app关闭的时候调用,但是就像onDestroy()一样,不能保证一定会被调用。所以最好不要依赖这个方法做重要的处理,
这个方法最多可以用来销毁一写对象,清除一下缓存,但是也并不能保证一定会清除掉,其他操作,例如想在程序结束保存数据,用这个方法明显是错误的。
使用方法如下:
清除http连接:
{% highlight java %}
public void onTerminate()
{
super.onTerminate();
shutdownHttpClient();
}
private void shutdownHttpClient()
{
if ((this.httpClient != null) && (this.httpClient.getConnectionManager() != null)) {
this.httpClient.getConnectionManager().shutdown();
}
}
{% endhighlight %}
清除缓存、日志和地图
{% highlight java %}
public void onTerminate()
{
if (this.mBMapMan != null)
{
this.mBMapMan.destroy();
this.mBMapMan = null;
}
super.onTerminate();
new Thread()
{
public void run()
{
App.delete(new File(Environment.getExternalStorageDirectory() + "/xxx/Diary/"));
}
}.start();
}
{% endhighlight %}
清除ActivityLifecycleCallbacks的注册
{% highlight java %}
@Override
public v
点击阅读更多
资源评论
空城大大叔
- 粉丝: 22
- 资源: 313
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功