Android10上出现的DeadObjectException异常
创始人
2024-08-20 08:30:07
0

在Android 10及以上版本中,如果你在使用Binder IPC(跨进程通信)时,并且一个应用程序连接到服务的进程崩溃或停止运行,则可能会抛出DeadObjectException异常。这是因为在Android 10中引入了一个名为“killBackgroundProcesses”的新方法,该方法调用会在进程崩溃或停止运行时杀死其后台进程。当此方法被调用时,与该进程连接的所有客户端都将收到DeadObjectException异常。

解决此问题的一个例子是在你的客户端代码中实现一个死亡监听器。当与服务断开连接或服务崩溃时,该监听器将被通知并执行清理操作。下面是一个简单的示例代码:

public class MyServiceConnection implements ServiceConnection { private MyService myService; private boolean mIsBound;

@Override
public void onServiceConnected(ComponentName name, IBinder service) {
    myService = ((MyService.MyBinder) service).getService();
    mIsBound = true;
    myService.setDeathRecipient(mDeathRecipient); // 设置死亡监听器
}

@Override
public void onServiceDisconnected(ComponentName name) {
    myService = null;
    mIsBound = false;
}

private IBinder.DeathRecipient mDeathRecipient = new IBinder.DeathRecipient() {
    @Override
    public void binderDied() {
        if (myService != null) {
            myService.asBinder().unlinkToDeath(mDeathRecipient, 0); // 解除与死亡监听器的绑定
            myService = null;
            // 执行清理操作
        }
    }
};

public void unbindService(Context context) {
    if (mIsBound) {
        if (myService != null) {
            myService.asBinder().unlinkToDeath(mDeathRecipient, 0);
            myService = null;
        }
        context.unbindService(this);
        mIsBound = false;
    }
}

}

在上面的代码中,在与服务连接时,我们将死亡监听器设置为MyService实例,并在其死亡时执行清理操作。在服务断开连接时,我们解除与死亡监听器的绑定,并将其设置为null。在解绑服务时,我们还必须解除与死亡监听器的绑定,并将其设置为null

相关内容

热门资讯

实测必看!欢乐情怀开挂,hhp... 实测必看!欢乐情怀开挂,hhpoker大菠萝有没有作比,详细软件(有挂方法)实测必看!欢乐情怀开挂,...
玩家必看!微信小程序多功能辅助... 玩家必看!微信小程序多功能辅助,盛世透视辅助器,详细器(有挂规律)微信小程序多功能辅助脚本下载中分为...
热点推荐!朋朋政和软件辅助器,... 热点推荐!朋朋政和软件辅助器,海贝之城正版辅助,详细挂(有挂透明挂)朋朋政和软件辅助器辅助器是一种具...
热门推荐!内蒙博乐填大坑辅助,... 热门推荐!内蒙博乐填大坑辅助,亲友圈辅助吧,详细攻略(详细教程)1、起透看视 内蒙博乐填大坑辅助辅助...
实测发现!四川家园辅助器,微信... 实测发现!四川家园辅助器,微信小程序多乐游戏辅助脚本,详细app(发现有挂)1、操作简单,无需微信小...
分享实测!微信开心泉州有技巧吗... 分享实测!微信开心泉州有技巧吗,福建十三时辅助,详细挂(有挂存在)1、进入到微信开心泉州有技巧吗是否...
重大科普!小程序66徐州辅助,... 重大科普!小程序66徐州辅助,决战卡五星最新辅助,详细教程(有挂解惑)1、上手简单,内置详细流程视频...
热点推荐!打两圈辅助,边锋辅助... 热点推荐!打两圈辅助,边锋辅助装备,详细脚本(有挂规律)运边锋辅助装备辅助工具,进入游戏界面。进入边...
重磅来袭!盛世辅助器,四川麻将... 重磅来袭!盛世辅助器,四川麻将血战如何开挂辅助,详细插件(有挂方针)1、四川麻将血战如何开挂辅助免费...
玩家必备教程!填大坑小程序辅助... 玩家必备教程!填大坑小程序辅助器,科技实测欢乐辅助,详细app(有挂教程)1.填大坑小程序辅助器 选...