class.method(Context) 引数でContextを渡して済ませていた。
それができない状況が出て、ViewModel で Context を取得できるように変えた。
ViewModel のプロパティにContextを保存すると、更新で不一致になったり、参照が残るとシステムが廃棄ができなくなりメモリリークを発生させる。
なので、AndroidViewModel() を使い、getContext() が使えるようにする。
class MainViewModel(app:Application) : AndroidViewModel(app) {
fun getContext(): Context {
return getApplication()
}
}
利用する場所では、今まで通りで対応はなし。違いは吸収されるらしい。