@VisibleForTesting
テストのために、必要以上にスコープを広げていることを示すアノテーション
・MVPではActivityがプレゼンタを生成する
・IntentFilterとは受信したブロードキャストをタグ(アクションと言う)でフィルタリングするもの
・テックノート – Junitライブラリ「Mockito」の@Mockと@InjectMocksの使い方
・onCreateとonDestroy、onStartとonStop、onResumeとonPauseで対になる
・onSaveInstanc()はバックキーでは呼ばれない
・永続化したいときはonPause()でBundleに保存
・カスタムビューのXMLとその親のViewGroupのレイアウトの重複を避けるため、XMLの親にmergeを指定する
・カスタムビューを作成するためにはattrs.xmlをいじる
・layoutのXMLをViewGroupに設定するためにはinflateする
・R.styleableはカスタムビューで使用する
・TypedArrayはXMLから値を取得できる、使い終わったらrecycle()
・引数のAttributeSetはXMLの値が入っている
・XML → attrs → TypedArray
・Fragmentには引数なしコンストラクタを宣言しておく←リフレクションされるため
・Fragmentを作成する手順の一つは
①Fragmentを継承したクラス宣言
②Fragment用のレイアウトXMLを作成
③ActivityにFragmentを貼り付ける
・ActivityとFragmentが紐付く→onAttach() 解かれる→onDetach()
・Activityと違ってFragmentにはonRestoreInstanceState()はない、つまりスリープからの復帰は単純にはできないが、onCreate~onActivityCreateの引数にBundleがあるのでそこで状態を読み込む
・今存在するフラグメントの取得、新たにフラグメントの作成はFragmentManagerで行う
・Fragmentを生成したとき、その親のActivityのonCreate()も呼び出される。処理を重複して行わないよう注意。
・Fragment.setArguments()でBundleを保持でき、保持したBundleにはFragment.getArguments()でアクセスできる
・addToBackStack()の引数に文字列を指定しておくと、以降にいくらスタックに積まれても、前述のキーを指定すれば一気にそこまで戻れる。普通はnull。
・画面を持たないフラグメントをヘッドレスFragmentという
・ヘッドレスFragmentは回転で再生成する必要はないのでsetRetainInstance(true)する
・しかしActivityは毎回再生成されるのでfindFragmentByTagなど、フラグメントが存在しないことを事前に確認してからヘッドレスFragmentを生成する
・接続状況はConnectivityManagerで取得
・receiverで接続/切断などのイベントが受け取れる