Binder 应用于C/S通信中,有时候Server可能需要知道Client进程是否存在,当Client挂掉后,Server可以及时清理资源。
利用这种机制,同样可以实现简单的程序守护,当Client崩溃后,Server帮助重启Client程序。
守护程序
守护程序开放一个Service,提供给被守护程序调用
- AIDL
package com.example.guardapp;
import android.os.IBinder;
interface IGuardService {
void attachBinder(IBinder token);
}
- Service
public class GuardService extends Service {
private static final String TAG = "GuardService";
private static final String MAIN_APP_PACKAGE = "com.example.mainapplciation";
private static final String MAIN_MAIN_ACTIVITY = "com.example.mainapplciation.MainActivity"