1 利用系统广播保活
以下示例是通过添加系统开机的广播接受者来启动进程。
<receiver android:name=".MyReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i("hh","监控开机成功");
Toast.makeText(context,"开机成功",Toast.LENGTH_LONG).show();
Intent intent1 = new Intent(context,MainActivity.class);
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent1);
}
}
2 利用自定义的广播
利用自定义的广播实现和利用系统广播实现的原理基本一致,只不过这个广播是自定义的。该种场景适宜于手机安装有多款自研的APP或者手机安装有自研的相关SDK。
举例来说,阿里系的任何一款应用只要你安装了以后就会发出广播,相关阿里系的产品就会收到相应广播,从而启动进程;又或者手机中有一款APP使用了阿里系的SDK,该App在启动时也可能发出广播。