365連休

にわかのandroidとかの開発メモ。

AndroidStudio3.6

Android Studio 3.6 ワーカースレッドとしてHandlerThreadを使う

Androidの非同期処理にAsyncTaskやExecutorを使う事があるが、ワーカースレッドを作りworkerHandler.post()で実行する方法もある。 最近のマイブーム。 HandlerThreadはThreadを継承しているため、newしてstart()すれば、別スレッドでお手軽非同期処理ができ…

Android Studio 3.6 Navigationで複数画面のPreferenceFragmentを使用する方法

設定.xmlのPreferenceタグにFragmentを指定すると別なPreferenceFragmentを起動できるが、Navigationを使用している場合うまく動作しない。 ちゃんと確認していないが、Navigationと複数画面のPreferenceの食べ合わせは非推奨らしい。 そこで、Navigationの…

Android Studio 3.6 ディレクトリを表すUriオブジェクトがあるか?

ディレクトリを表すUriオブジェクトはあります。

Android Studio 3.6 SavedStateViewModelFactoryがリフレクションするViewModelのコンストラクタ

前書き 筆者がぽんこつなため、この記事は一部不正確な可能性があります。ご了承ください。 前提条件 //build.gradle implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' SavedStateViewModelFactoryって? 画面回転時とかの再生成に対応したV…

Android Studio 3.6 MediaStoreのBaseColumn._IDが主キーじゃないという話

android.provider.MediaStoreのImageColumnsもFileColumnsもandroid.provider.BaseColumnsを継承しているが、 BaseColumns._IDは主キーじゃなかったという話。 ハイラルキー BaseColumns MediaColumns ImageColumns AudioColumns VideoColumns DownloadColum…

Android Studio 3.6 【新機能】ViewBindingを使用してUI参照を簡単に取得する

先日Android Studio 3.5 -> 3.6へアップデートして、新機能をチェックしていた中で、ひとつ目に留まったのがViewBinding。 build.gradle(app) android{ compileSdkVersion… : viewBinding.enabled = true : } これを追加すると、レイアウトファイルに対し…

Android Studio 3.6 Fragment用のオプションメニューを追加しようと思ったら、onCreateOptionsMenuが呼ばれない。onPrepareOptionsMenuも呼ばれない。

Activityでオプションメニューを生成し、Fragmentからもオプションメニューを追加したいと思った時、 Fragment#onCreateOptionsMenu または Fragment#onPrepareOptionsMenu をオーバーライドするが、これだけでは不十分。 Fragment#onCreateView内でsetHasOp…