有时为了得到更好的用户体验往往会把一些大的数据(如图片等)下载到本地sdk卡,或者软引用softreference缓存到内存中去(这时可能出现内存不足)。
1.
public class Myapp extends Application { //清单文件要记得注册。
// 系统内存不足是会调用该方法
@Override
public void onLowMemory() {
//通过意图发送出去一个这样的广播
Intent intent = new Intent();
intent.setAction("kill_activity_action");
sendBroadcast(intent);
}
}
2. 创建一个广播接受者
private class KillReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) { //在这个方法中释放内存
iconCache = null; //把软件引用置为空
showToast("内存不足activity退出");
finish(); //关闭activiy.
}
}
3在要用到软引用数据的方法中注册广播接受者
public void setupView() {
IntentFilter filter = new IntentFilter();
filter.addAction("kill_activity_action");
KillReceiver receiver = new KillReceiver();
this.registerReceiver(receiver, filter);
}