私は死にたくない#
Android 端のネットワークフローティングウィンドウを作成しましたが、システム(Android Oreo)によって頻繁にバックグラウンドで終了されます。
次のような方法をたくさん調べました:Android アプリを *** 流氓安全管家のように簡単に終了させない方法はありますか(
以下の作業を行いました:
サービスが終了するときに自分自身にブロードキャストを送信する#
@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
メソッドさえ実行されないからです...
サービスの起動コマンド#
Sticky
に変更
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
デーモンプロセスの開始#
2 つのサービスを開始し、お互いを起こす
Android 8.0 ではあまり効果がないようです...
最後に#
どうしようもない
アプリをシステムアプリに変換するためのソフトウェアをダウンロードしました...流氓ソフトウェアを作るのは結構難しいですね...