フラグメントへのBroadcastReceiverの登録と解除
質問
私のアプリには、3つのフラグメントタブを持つアクションバーがあります。
2 番目のフラグメントでは、BroadcastReceiver を登録および登録解除しています。
私は、受信機を
onPause
で登録を解除し
onCreateView
に登録し
onResume
.
getActivity().registerReceiver(this.batteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
と
getActivity().unregisterReceiver(batteryInfoReceiver);
1) 同じrecieverを2回(onCreateViewとonResumeで)登録しても大丈夫でしょうか(無害でしょうか)?
2) onResumeでrecieverを登録するだけで良いのでしょうか?
どのように解決するのですか?
以下のサイトをご覧ください。
ライフサイクル
の
Fragments
:
onCreateView()を使用します。 システムは、フラグメントが初めてユーザーインターフェイスを描画するときにこれを呼び出します。フラグメントのUIを描画するには、フラグメントのレイアウトのルートであるViewをこのメソッドから返さなければなりません。フラグメントがUIを提供しない場合は、nullを返すことができます。
onResume(): フラグメントは実行中のアクティビティに表示されます
onPause(): これは通常、現在のユーザーセッションを超えて永続化されるべきすべての変更をコミットする場所です(ユーザーが戻ってこないかもしれないので)。
結論です。
ということで、より良いのは
の中だけでレシーバを登録するのがよいでしょう。
onResume()
の中だけで登録し、登録解除は
onPause()
なぜなら
onCreateView()
はビューの階層構造のみを扱うからです。レシーバとは関係ありません。そのため、害はありませんが、無駄であることは確かです。
参考になれば幸いです。
関連
-
[解決済み] FragmentでonActivityResultが呼び出されない
-
[解決済み] ViewPagerでFragmentが表示されるタイミングを決定する方法
-
[解決済み] 新しいAndroid Fragmentをインスタンス化するためのベストプラクティス
-
[解決済み】「px」、「dip」、「dp」、「sp」の違いは?
-
[解決済み] 「KotlinとAndroidで「パラメータTを推測するのに十分な情報がありません。
-
[解決済み] 複数のフィルタを持つBroadcastReceiverか、複数のBroadcastReceiverか?
-
[解決済み] フラグメント間の値の受け渡し方法
-
[解決済み] Android Lintが翻訳されていない文字列を訴えないようにする。
-
[解決済み] Android: xml リソースからの整数値
-
[解決済み] アクティビティで作成した放送受信機の登録・解除はいつ行うのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] AndroidでラジオボタンにOnClickListenerを設定するには?
-
[解決済み] getApplication()、getApplicationContext()、getBaseContext()、someClass.thisの違いと使い分け。
-
[解決済み] Androidでマイナスマージンを使用するのは悪いことですか?
-
[解決済み] Gmailの3分割アニメーションシナリオの完全動作サンプル?
-
[解決済み] Androidのadb logcatでTAG名で特定のメッセージを除外する方法は?
-
[解決済み] Android: ランドスケープモード用の代替レイアウト xml
-
[解決済み] RecyclerViewのアイテムに波及効果を追加する
-
[解決済み] Android Lintが翻訳されていない文字列を訴えないようにする。
-
[解決済み] 実行に失敗しました app:processDebugResources Android Studio
-
[解決済み] Google Play ストア内部テストのロールアウトが開始できない