私はWakefulBroadcastReceiver
とIntentService
を持っています。30分ごとにアラームが呼び出され、何かをしています。私はすでにsetExactAndAllowWhileIdle()
メソッドでdozeモードを処理しています。
最近カスタマイズされたosを搭載したいくつかの新しいスマートフォンは、Android osに基づく独自のカスタマイズされたosを持っています。カラーosを使用するoppo、funtouch osを使用するvivo、MIUI osを使用するxiomiのようです。OSでメモリをクリアする機能があります。たとえば、ユーザーが最近のアプリリストをクリアしたり、アプリを最近のアプリリストから削除したりすると、すべてのアラームとともにすべてのバックグラウンドサービスが強制終了されます。
これらの新しいOSを使用するには?
[〜#〜] miui [〜#〜]電話の場合、POWER SAVING MODEをオフにする必要があります。そうすると、アプリをバックグラウンドで実行できます。
手順:設定-> バッテリー-> アプリのバッテリー使用量の管理->に移動しますオフまたはアプリを選択
プログラムで:
Intent intent = new Intent();
intent.setClassName("com.miui.powerkeeper",
"com.miui.powerkeeper.ui.HiddenAppsContainerManagementActivity");
startActivity(intent);
Oppoデバイスの場合、次の手順に従います。
プログラムで:
Intent intent = new Intent();
intent.setClassName("com.coloros.oppoguardelf",
"com.coloros.powermanager.fuelgaue.PowerConsumptionActivity");
startActivity(intent);
プログラムで:
Intent intent = new Intent();
intent.setClassName("com.coloros.safecenter",
"com.coloros.safecenter.permission.startup.StartupAppListActivity");
startActivity(intent);
これは私にとってうまくいきました、これもあなたのためにうまくいくことを願っています:)
最近のアプリリストからアプリが削除されたためにアプリが強制終了された場合は、Android.app.Service.onTaskRemoved()
をオーバーライドして、アプリの再起動などをスケジュールできます。
ユーザーがアプリを強制終了するために明示的にアクションを実行する他のすべての場合(たとえば、設定から「強制停止」を行うなど)---そのようにします。これを回避しようとしないでください。ユーザーがアプリを強制終了したいと考えています。死なせて、次にユーザーがアプリを再び起動したときに機能を復元します。