API 26で常に実行されているブロードキャストレシーバの実装に問題があります。 まず、私のインテントフィルタは、Oreoの制限なしインテントフィルタのホワイトリストにありません。 私は放送受信機をNotificationListenerServiceでラップしようとしましたが、しばらくすると殺されます。 さらに、私はフォアグラウンドサービスの通知を表示したくありません。 TargetSDKをAPI 25にダウングレードすると、これらの制限はOreoデバイスでは有効になりません。 ありがとうございました:)常にAPI 26でブロードキャストレシーバを実行中
答えて
をBroadcastReceiver
入ってくる放送を処理するためにlimited timeを持っています
システムがブロックされる受信機と殺されるために候補者を考慮し 前にできること10秒のタイムアウトがあります
「常に実行中」とは、アプリが実行されていなくても常に登録されているブロードキャストのように、実際に「暗黙的に登録」された場合、targetSDKを24以下に設定しない、およびOreoユーザーが設定に入り、あなたのアプリに新しい制限を適用しない限り、それは問題ありません。 docsから
:
アプリは、デフォルトでは...ほとんどの暗黙の 放送
に登録する
を自分のマニフェストを使用することはできません、これらの制限は 対象Oのアプリケーションにのみ適用されますただし、ユーザーが設定画面から任意のアプリ にこれらの制限を有効にすることができます。アプリが対象外の場合でも、
それで、私のアプリターゲットをSDK25にダウングレードし、ブロードキャストレシーバーをアプリケーションマニフェストに登録して、常に登録するように勧めますか?本当にありがとう! – user3424279
これは未来の証明の解決策ではありません。なぜなら、ある種の依存関係のためにターゲットを再度増やす必要があるかもしれないからです。しかし、現時点で私がやることです。 – marmor
これは悪いことです。 。 API 26にとどまり、レシーバーを常に登録させる他の方法はありませんか? – user3424279
それは助けることができる場合は(自分の放送受信機は、あなたのアプリケーションや他のアプリのマニフェストに登録されている場合)、このソリューションは、私のために仕事をした:
PackageManager pm=getPackageManager();
List<ResolveInfo> matches=pm.queryBroadcastReceivers(yourIntent, 0);
for (ResolveInfo resolveInfo : matches) {
Intent explicit=new Intent(yourIntent);
ComponentName cn= new ComponentName(resolveInfo.activityInfo.applicationInfo.packageName,
resolveInfo.activityInfo.name);
explicit.setComponent(cn);
sendBroadcast(explicit);
}
- 1. DestroyJavaVMスレッド常に実行中
- 2. bada app常に実行中
- 3. Giraphジョブはローカルモードで常に実行中
- 4. AsyncTaskのステータスは常に実行中
- 5. 対応ネイティブ:常に実行中のコンポーネント
- 6. JavaCompiler API - Tomcatで実行中のスローコンパイル
- 7. ブロードキャストレシーバのOnRecieve()メソッドで非同期タスクを実行する
- 8. Objective-C、Mac OS Xアプリケーションの実行中に常にメソッドを実行
- 9. Ajax + Jquery Internet ExplorerでJavascriptが非常に遅く実行中
- 10. ローカルで実行中のNettyサーバーが正常にシャットダウンしない
- 11. 実行中のJVMでデバッグを有効にするJava API
- 12. 常に実行中のメソッドを作成する
- 13. 非常に長い実行中のレーキタスクを扱う
- 14. テスト中にモックを返し、通常の実行中に実際の実装を返すクラスインスタンス
- 15. Mailchimp api v3:バッチサブスクリプションは常に保留中
- 16. 実行中にCPU使用率が非常に高くなる
- 17. 長時間実行中のエクスプレスAPIプロセスを別のスレッドで実行するNodeJs
- 18. fedoでposix apiを含むC++プログラムを実行中
- 19. 非常に遅いVisual Studio 2015が実行中
- 20. iPhoneでネイティブアプリを実行中
- 21. 通常のJavaコードでAPIを使用して実行中のJBPMプロセスリストを取得する方法
- 22. リモートマシンで常にvirtualenvの中で実行するのに最適な方法は?
- 23. cronでraketaskを実行中
- 24. Androidのネイティブドライバapiエラーで計測器コマンドを実行中
- 25. アンドロイドOS 4.3 API 18でアプリを実行中のNoClassDefFoundErrorがアンドロイド
- 26. 既に実行中のAVDのアンドロイドプロジェクトを実行中
- 27. プロダクションでLagomを実行中
- 28. 実行中のアクティビティをJavaのアンドロイドで実行中の進行中に無効にする方法
- 29. WindowsでKafkaを実行中
- 30. irbでメソッドを実行中
「私はAPI 25に私のTargetSDKをダウングレードした場合、これらの制限はOreoデバイスでは有効になりませんか? - あなたのアプリにこれらの背景の制限を適用できるユーザー自動ではなく単なるマニュアルです。 – CommonsWare