[改訂新版]Android SDKポケットリファレンス (POCKET REFERENCE) 新品価格 |
LiveDataを使ってみた
・呼び出し側
1 2 3 |
val viewModel: PostViewModel = ViewModelProviders.of(this).get(PostViewModel::class.java) viewModel.data.observe(this, Observer<Boolean> { flag -> Log.e("aaaa:", "aaaa"+flag)}) viewModel.post() |
・ViewModel
1 2 3 4 5 6 7 8 9 10 11 12 13 |
class PostViewModel : ViewModel() { val data = MutableLiveData<Boolean>() fun post() { Handler().post(Runnable { data.value = true Thread.sleep(2000L) data.value = false }) } } |
ただし、post系のメソッドで使ってみたけど
再度FragmentやActivityが再度作り直されたら
同じ返却値が返ってくる
なので送信済みという結果が再度送られてくる
>BackStackからアクティブになった瞬間、最新のデータを受け取れる
https://qiita.com/yu-aiki/items/de559e76888e1e327db7
データの受け取りには使えそうだけど
post系はちょっと難しいかもしれない
関連記事:
- androidでDataBinding + ViewModel + LiveDataで双方向Bindingしてみた
- Android12(API level31)対応のやり方
- AndroidのLiveDataに対してJUnitを実行する