我不想死啊#
写了个 Android 端的网络悬浮窗,但是经常被系统(Android Oreo)把后台杀掉,
就查了很多如: 如何让 android app 像 *** 流氓安全管家一样不被轻易杀死(
做了以下工作:
service 被杀的时候发一个广播奶自己一口#
@Override
public void onDestroy() {
stopForeground(true);
Intent intent = new Intent(getString(R.string.BACK_SERVICE_NAME));
sendBroadcast(intent);
super.onDestroy();
}
public class ProtectBroadcast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(context.getString(R.string.BACK_SERVICE_NAME))) {
Toast.makeText(context, "Traffic Service Restarting..", Toast.LENGTH_SHORT).show();
Intent intentStart = new Intent();
intentStart.setClass(context, BackService.class);
context.startService(intent);
}
}
}
但好像没啥用,因为连destroy
方法都没来的及执行。。。
Service 的启动命令#
改为Sticky
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
开守护进程#
开两个 service,互相唤醒
在 Android 8.0 上好像没啥用。。
最后#
没辙
下了个软件把 app 转为系统 app... 做个流氓软件还挺难哈。。