美文网首页
app 在后台时间过长被杀死,及时重启

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

作者: 啤酒是你丶 | 来源:发表于2017-06-20 14:58 被阅读0次

    大家肯定会遇到过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被后台杀死时,都会重走欢迎页,重新获取数据

    相关文章

      网友评论

          本文标题: app 在后台时间过长被杀死,及时重启

          本文链接:https://www.haomeiwen.com/subject/jtaoqxtx.html