【Android】乱七八糟的小结

1.死亡回调

java 复制代码
private final ServiceConnection connection = new ServiceConnection() {
        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            logD("launcher aidl connected");
            iLauncher = ILauncher.Stub.asInterface(service);
            try {
                // 为Binder 对象设置死亡回调,当绑定的服务进程死亡时,会触发这个回调
                iLauncher.asBinder().linkToDeath(new IBinder.DeathRecipient() {
               		// 当绑定的服务进程死亡时,系统会调用这个方法
                    @Override
                    public void binderDied() {
                        Log.d(TAG,"[binderDied] retry bindService!");
                        // 然后将 iLauncher 置为 null,以释放对旧服务代理对象的引用
                        iLauncher = null;
                        // 最后调用 bindService() 方法,尝试重新绑定服务
                        bindService();
                    }
                },0);
            } catch (RemoteException e) {
                e.printStackTrace();
            }
        }

        @Override
        public void onServiceDisconnected(ComponentName name) {
            logD("launcher aidl disconnected");
        }
    };
相关推荐
YWL1 分钟前
OpenLayers地图分享:URL参数同步+分享链接生成,让用户一键分享地图视角
前端·javascript·vue·openlayers
云雀衔光6 分钟前
MCP 协议全景:为什么它是 AI 连接工具的「USB-C」
java·开发语言·数据库·人工智能·ai编程
JMchen6 分钟前
第 2 篇|Kotlin 进阶 —— 集合、循环与条件表达式
android·kotlin
ly768911 分钟前
Spring 异步编程的隐藏风险:@Async 线程池耗尽与异常处理详解
java·后端·spring·异常处理·线程池·任务拒绝
用户81818706274614 分钟前
第23章 热点Key问题排查与解决:大促场景经典坑
java·后端
律宏阔18 分钟前
Android 自定义 Launcher 加载第三方 App Widget
android
IT枫斗者枫哥22 分钟前
Java 接口超时后,重试为什么会多建一条任务?
java
律宏阔27 分钟前
Android 9 开发板实现系统侧滑返回
android
用户31268748772027 分钟前
CAS 到底是怎么保证原子性的?从 Unsafe 到 VarHandle 的演进
java
梦醒沉醉30 分钟前
5、表达式与运算符
javascript