私のアプリケーションクラスは主に現在のアクティビティのコンテキストや他のものを扱います(トーストやダイアログなどを表示するようなもの)。 アプリケーションクラスを使用している別のものは、ブロードキャスト受信者を登録するためのものです。アクティビティのコンテキストではなくアプリケーションのものです。 私が知りたいことは: ブロードキャストレシーバーは私のUI(活動の)スレッドをブロックするでしょうか? (私はアプリケーション経由でレシーバに電話しているので、何か違いはありますか?) また、(アプリケーションコンテキストから)ハンドラ経由でレシーバを登録することもできます。私はそれをすべきか?または、私の主なスレッドをブロックしない他の方法もありますか? ありがとうございます。あなたが明示的に求められない限り、それは[registerReceiver(BroadcastReceiver, IntentFilter, String, android.os.Handler)
](https://developer.android.com/reference/android/content/Context.html#registerReceiver(android.content.BroadcastReceiver、android.content.IntentFilter、java.lang.Stringで、アンドロイドを使用して別のスレッドでスケジュールされるためアプリケーションコンテキスト経由でブロードキャスト受信機を登録する
0
A
答えて
0
BroadcastReceiverOnReceive()
は常に、そのプロセスのメインスレッド内で呼び出されます。 os.Handler))。
メインスレッドで実行するときは、長時間実行する操作は実行しないでください(レシーバーがブロックされ、候補が強制終了される前に、システムが許容するタイムアウトは10秒です)。 onReceive()
の実装では、ポップアップダイアログを起動できません。
関連する問題
- 1. マニフェストファイルの受信機をブロードキャストするためのカスタムインテントフィルタを登録するには?
- 2. アプリケーションコンテキストで登録されたキャスト受信機からのアクティビティの開始
- 3. サービスの受信機を登録する
- 4. カスタムコントロールのブロードキャスト受信者を登録解除する場所
- 5. ブロードキャスト受信機はどこに登録すればよいですか?
- 6. アクティビティに登録されているすべてのブロードキャスト受信者の登録を解除する
- 7. ブロードキャスト受信者からリスナー&サービスを登録解除するには
- 8. ウェブサーバー経由での証明書登録
- 9. 3G経由のゲームセンター(GameKit)経由でデータを送受信する
- 10. ConnectivityManager.CONNECTIVITY_ACTIONは、受信者の登録時に常にブロードキャストされますか?
- 11. 受信機を動的に登録できません。
- 12. ブロードキャスト受信機の登録方法は?あなたは外にあなたの受信機を移動する必要がある。ここ
- 13. GCM経由でモバイルデバイスにメッセージを送信するときに無効な登録
- 14. 登録解除Firebaseクラウドメッセージングクライアント(REST API経由)
- 15. 暗示的なブロードキャスト受信機とマニフェストの明示的なブロードキャスト受信機を区別する
- 16. Androidでソケット経由でライブオーディオデータを受信
- 17. AndroidとiPhoneのブロードキャスト受信機/サービス
- 18. ブロードキャスト受信機内部のアクティビティ
- 19. SMSブロードキャスト受信機の問題
- 20. .NET/Powershell経由でAAD B2Cアプリケーション登録を作成する
- 21. Vue.js - Webpack経由でチャートコンポーネントを登録する
- 22. Windsor経由でカスタムNHibernate Interceptorを登録する
- 23. 他の活動に登録されている放送受信機の登録を解除するには?
- 24. websocket経由で画像を受信
- 25. ラズベリーパイのLAN経由でデータを受信
- 26. TCPソケット経由でバイト[]を送受信
- 27. PHP:POST経由でPDFファイルを受信
- 28. Protobuf3メッセージをネットワーク経由で受信
- 29. PHP POSTデータをコマンドライン経由で受信
- 30. SendGrid経由で電子メールを受信
'BroadcastReceiver'は常にUIスレッドで実行されます。 – nukeforum