android app被回收,Android app被回收之后会导致的问题

当android app被回收之后,再次点击图标会回到最后打开的页面,但是一些数据已经被回收了,直接打开可能会报空指针异常之类的,我们可以判断是否被回收,然后重启app

public class StatusHolder{

public class StatusHolder {

private static StatusHolder mInstance;

private boolean isKill = true;

public boolean isKill() {

return isKill;

}

public void setKill(boolean kill) {

isKill = kill;

}

private StatusHolder() {

}

public static StatusHolder getInstance() {

if (mInstance == null) {

synchronized (StatusHolder.class) {

if (mInstance == null) {

mInstance = new StatusHolder();

}

}

}

return mInstance;

}

}

}

再BaseActivity的oncreate里面判断是否是loadingActivity,如果不是的话就判断是不是已经被回收,被回收就重启app

if (mActivity instanceof LoadingActivity) {

StatusHolder.getInstance().setKill(false);

}else {

if(StatusHolder.getInstance().isKill()) {

LogUtils.e("app was kill");

Intent intent = new Intent(this, LoadingActivity.class);

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);

startActivity(intent);

}else {

LogUtils.d("app was normal");

}

}

首先判断是不是初始化的页面 是的话就设置是否被杀为false,如果不是初始化页面就判断是否被杀,被杀就重启

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值