android app存活时间长,app 在后台时间过长被杀死,及时重启

大家肯定会遇到过app退到后台,同时开启很多其他的应用,这时可能会造成我们的app因内存不足而导致进程被杀死,这时我们在从后台返回我们的app时,就会出现问题,特别是用到Application里面存储的变量时,这时会出现空指针的现象,这时我们就要想办法来解决这个问题。

第一种是直接在登录的时候直接把网络获取的数据存进数据库,用到的时候直接在数据库拿,这样呢可以解决问题,但是这时就要写很多的代码。同时还要对数据库操作,这样做起来比较麻烦。

第二种是把数据存到application中,这时我们要定义一个变量来判断app是否被杀死。

(1)先在application中定义一个静态变量

//判断是否被回收public static intflag= -1;

(2)这时我们只需要定义一个BaseActivity

public classBaseActivityextendsAppCompatActivity {@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);        setContentView(R.layout.activity_base);if(MyApplication.flag== -1) {//flag为-1说明程序被杀掉protectApp();        }    }protected voidprotectApp() {        Intent intent =newIntent(this, MainActivity.class);        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//清空栈里MainActivity之上的所有activtystartActivity(intent);        finish();    }

(3)这时我们要把我们项目里面的所有activity(除了欢迎页的activity)t统一继承这个BaseActivity,并在MainActivity中实现这个protecApp()

@Overrideprotected voidprotectApp() {    startActivity(newIntent(this, SplashActivity.class));    finish();}

(4)最后我们要在欢迎页的activity中把flag设置成-1以外的数;

MyApplication.flag=0;

这样我们的app被后台杀死时,都会重走欢迎页,重新获取数据

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值