問題タブ [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.

0 投票する
1 に答える
6380 参照

java - パッケージを強制停止した後、Android がフォアグラウンド サービスを強制終了しています

私はこれに2週間苦労しています。

通話時間を制御するアプリを開発しています。

電話を切るためにフォアグラウンド サービスを開始するブロードキャストを受信します。

しかし、5分以上Androidがパッケージを強制的に停止した後、サービスがクラッシュする原因となるプロセスを強制終了します-私は思います-(理由はわかりません)クラッシュメッセージやエラーは発生しません。

消えるだけです。

また、再起動をスケジュールしますが、サービスを再度開始することはありません。

ここにログキャットがあります

I got this を使用adb shell dumpsysすると、サービスが適切な優先度を持つフォアグラウンド サービスであることを保証します

そしてProcess LRU list (sorted by oom_adj):セクションで

私は自分のサービスをどの活動にも拘束していません

次のようにサービスを開始します。

これは私のものonStartCommandです:

こんな感じでウェイクロックを取得しています

SOおよびGoogleの問題からすでに多くの解決策を試しましたが、何もうまくいきません。

私はこれらすべてを見て試しました:

OS によって強制終了されたフォアグラウンド サービス

フォアグラウンド サービスは毎回強制終了されます

特定の条件下で Android フォアグラウンド サービスが強制終了される

通知のクリックでフォアグラウンド サービスが強制終了される

Android によって強制終了されるフォアグラウンド サービス

アプリを維持しているユーザーは、全インストール数の 30% にすぎません。

私が間違っていることは何ですか?

0 投票する
1 に答える
2123 参照

android - フォアグラウンド アプリ API レベル 21 を取得する

ActivityManager.getRunningTasksは API レベル 21 から非推奨になったため、代わりに UsageStatsManager を使用することにしまし。しかし、getSystemService(USAGE_STATS_SERVICE)は API レベル 22 からのみ使用できます。つまり、API レベル >= 22 および <= 20 のデバイスでのみフォアグラウンド パッケージ名を取得できます。API 21 デバイスはどうですか。

0 投票する
1 に答える
817 参照

java - Android 5.0 lollipop でフォアグラウンド サービスを検出する方法

セキュリティ上の理由から、ユーザーの行動をプロファイリングするアプリを開発しています。このスニペットを使用して、実行中のデバイスのフォアグラウンドですべてのサービスを検出し、Android OS 4.4それらをリストに収集するサービスを作成しました。

これをデバイスで一度試してみたところ、このSDKバージョン以降で構築された他のアプリAndroid OS 5.0など、フォアグラウンドでサービスが検出されないことに気付きました。runtastic's service foreground新しいフォアグラウンド サービス ポリシーに依存する可能性はありますか?

0 投票する
1 に答える
1822 参照

android - Doze モードはフォアグラウンド サービスを一時停止します

私はデータロガーアプリを書いています.5分ごとに正確にhttpリクエストを行う必要があります. ユーザーはバッテリーの消耗を認識しており、私にとっては問題ありません。そのための適切な通知を備えたフォアグラウンド サービスを使用しており、実行可能なタスクを 5 分ごとにポストするハンドラー スレッドがあります。電話が DOZE MODE に入ると、スレッドが中断され、ランナブルが実行されないようです。それは正常な動作ですか、それとも何か不足していますか? それを行う方法についての助けをいただければ幸いです。

スレッドを開始するサービス コード:

スレッド コード:

0 投票する
1 に答える
310 参照

android - 非同期タスクを含むサービスが開始されていません

以下のコードを使用してサービスを開始しています。このサービスは、mysql をチェックして通知を提供する非同期タスクを開始する必要があります。サービスが開始されていませんが、その理由がわかりません。サービスからログを受信しません。(サービスなしでメインアクティビティから非同期タスクを直接呼び出すと、正常に動作します)。

メイン アクティビティ コード:

サービス クラス コード:

また、メイン アクティビティに以下のコマンドを追加するいくつかのソリューションを見つけましたが、このコマンドは私の Android スタジオでは適用できません。

0 投票する
1 に答える
1903 参照

android - ループのあるAndroidサービス?

2 つのボタンで開始および停止するバックグラウンド サービスを作成する必要があります。私のサービスは 5 分ごとに循環し、オンライン データベースからデータを取得します。IntentService クラスがループに使用されていないことをどこかで読みました。START_STICKY が返されるように、onStartCommand をオーバーライドします。このクラスでそれを行うと、サービスが開始されません。これどうやってするの?

0 投票する
1 に答える
527 参照

android - Android: バックグラウンドで Bluetooth LE デバイスに接続する

bleDevice.connectGatt(this, true, gattCallback)アプリのApplicationクラスからBLE ペリフェラルに接続しようとしています。デバイスは、数時間ごとにのみ広告パッケージを送信します。

アプリが開いている/アクティブである限り、これは正常に機能します。ディスプレイをオフにして数分待ってから周辺機器の電源をオンにすると、gattCallbackが呼び出されません。

フォアグラウンド サービスを作成する以外に、Bluetooth デバイスが有効になったときにアプリを起動する方法はありますか?