banner
RustyNail

RustyNail

coder. 【blog】https://rustynail.me 【nostr】wss://ts.relays.world/ wss://relays.world/nostr

不被轻易杀死

我不想死啊#

image

写了个 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... 做个流氓软件还挺难哈。。

image

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。