ContentProvider之client端闪退导致server端也闪退

最近都在使用ContentProvider来开发,一般我们把CP的提供者叫做client端,CP的访问者叫做server端,开发中的需求是server端通过CP向client下达指令,让client退出,由于需求没有说明是否要正常退出,所以我就干脆的让client端的应用程序强制退出。
System.exit(0);

但是测试的时候出现了一个问题,当指令通过CP传输到client端以后,执行System.exit(0)代码以后,client端进程退出,同时server端的进程也跟着退出了。

查阅了好多资料都说,这样的情况要通过源码来找解决办法了,此时抱着试试看的态度试了一下开线程退出,真的实现了,如下:

new Thread(new Runnable() {
    @Override
    public void run() {
       System.exit(0);
    }
}).start();

没错,就是把在Provider中的call方法中开子线程然后执行退出代码,当然在其他的几个增删改查中也可以,这样server端的进程就不会退出了。

在我之前的文章ContentProvider之线程中,我做过测试,Provider中要覆写的几个方法,除了onCreate的方法是运行在主线程的,其他几个基本上都是在子线程中的,call方法当然也是运行在子线程中,但是为什么在子线程中再开线程执行强制退出代码就解决了这个问题,我也不太清楚,有清楚的同学想留言告知,多谢。

最后,如果还有什么问题也可以通过公众号加我微信。公众号主要是我平时的一些读书感悟、投资成长,欢迎你的关注,我们一起进步。
<

 张鹤的公众号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值