問題タブ [foreground-service]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - パッケージを強制停止した後、Android がフォアグラウンド サービスを強制終了しています
私はこれに2週間苦労しています。
通話時間を制御するアプリを開発しています。
電話を切るためにフォアグラウンド サービスを開始するブロードキャストを受信します。
しかし、5分以上Androidがパッケージを強制的に停止した後、サービスがクラッシュする原因となるプロセスを強制終了します-私は思います-(理由はわかりません)クラッシュメッセージやエラーは発生しません。
消えるだけです。
また、再起動をスケジュールしますが、サービスを再度開始することはありません。
ここにログキャットがあります
I got this を使用adb shell dumpsys
すると、サービスが適切な優先度を持つフォアグラウンド サービスであることを保証します
そしてProcess LRU list (sorted by oom_adj):
セクションで
私は自分のサービスをどの活動にも拘束していません
次のようにサービスを開始します。
これは私のものonStartCommand
です:
こんな感じでウェイクロックを取得しています
SOおよびGoogleの問題からすでに多くの解決策を試しましたが、何もうまくいきません。
私はこれらすべてを見て試しました:
特定の条件下で Android フォアグラウンド サービスが強制終了される
Android によって強制終了されるフォアグラウンド サービス
アプリを維持しているユーザーは、全インストール数の 30% にすぎません。
私が間違っていることは何ですか?
android - フォアグラウンド アプリ API レベル 21 を取得する
ActivityManager.getRunningTasksは API レベル 21 から非推奨になったため、代わりに UsageStatsManager を使用することにしました。しかし、getSystemService(USAGE_STATS_SERVICE)は API レベル 22 からのみ使用できます。つまり、API レベル >= 22 および <= 20 のデバイスでのみフォアグラウンド パッケージ名を取得できます。API 21 デバイスはどうですか。
java - Android 5.0 lollipop でフォアグラウンド サービスを検出する方法
セキュリティ上の理由から、ユーザーの行動をプロファイリングするアプリを開発しています。このスニペットを使用して、実行中のデバイスのフォアグラウンドですべてのサービスを検出し、Android OS 4.4
それらをリストに収集するサービスを作成しました。
これをデバイスで一度試してみたところ、このSDKバージョン以降で構築された他のアプリAndroid OS 5.0
など、フォアグラウンドでサービスが検出されないことに気付きました。runtastic's service foreground
新しいフォアグラウンド サービス ポリシーに依存する可能性はありますか?
android - Doze モードはフォアグラウンド サービスを一時停止します
私はデータロガーアプリを書いています.5分ごとに正確にhttpリクエストを行う必要があります. ユーザーはバッテリーの消耗を認識しており、私にとっては問題ありません。そのための適切な通知を備えたフォアグラウンド サービスを使用しており、実行可能なタスクを 5 分ごとにポストするハンドラー スレッドがあります。電話が DOZE MODE に入ると、スレッドが中断され、ランナブルが実行されないようです。それは正常な動作ですか、それとも何か不足していますか? それを行う方法についての助けをいただければ幸いです。
スレッドを開始するサービス コード:
スレッド コード:
android - 非同期タスクを含むサービスが開始されていません
以下のコードを使用してサービスを開始しています。このサービスは、mysql をチェックして通知を提供する非同期タスクを開始する必要があります。サービスが開始されていませんが、その理由がわかりません。サービスからログを受信しません。(サービスなしでメインアクティビティから非同期タスクを直接呼び出すと、正常に動作します)。
メイン アクティビティ コード:
サービス クラス コード:
また、メイン アクティビティに以下のコマンドを追加するいくつかのソリューションを見つけましたが、このコマンドは私の Android スタジオでは適用できません。
android - ループのあるAndroidサービス?
2 つのボタンで開始および停止するバックグラウンド サービスを作成する必要があります。私のサービスは 5 分ごとに循環し、オンライン データベースからデータを取得します。IntentService クラスがループに使用されていないことをどこかで読みました。START_STICKY が返されるように、onStartCommand をオーバーライドします。このクラスでそれを行うと、サービスが開始されません。これどうやってするの?
android - Android: バックグラウンドで Bluetooth LE デバイスに接続する
bleDevice.connectGatt(this, true, gattCallback)
アプリのApplication
クラスからBLE ペリフェラルに接続しようとしています。デバイスは、数時間ごとにのみ広告パッケージを送信します。
アプリが開いている/アクティブである限り、これは正常に機能します。ディスプレイをオフにして数分待ってから周辺機器の電源をオンにすると、gattCallback
が呼び出されません。
フォアグラウンド サービスを作成する以外に、Bluetooth デバイスが有効になったときにアプリを起動する方法はありますか?