Android雑記

@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で接続/切断などのイベントが受け取れる