Androidアプリ開発において、coroutineによる非同期処理について勉強しています。
CoroutineScopeを実装する際にMainScope()を用いると容易に実装できることがわかったのですが、記述方法に関して疑問があったので質問させていただきました。
リファレンスを見るとMainScope、CoroutineScope両方のページにMainScopeによる実装例が載っていまいした。
MainScopeのページではActivityのプロパティとして宣言しており、CoroutineScopeのページではActivityに実装しClass Delegationにより生成しています。(言い方で何か間違っていたらすいません)
これらにはどのような違いがあるのでしょうか?(内部的にそもそも同じものなのか、書き方の違いでどのような利点があるのか等)
scope.cancel
ではなくcancel
のように済ませられるのでコード量が少し減るということくらいはわかるのですが...
よろしくお願いします。
kotlin
1class MyAndroidActivity { 2 private val scope = MainScope() 3 4 override fun onDestroy() { 5 super.onDestroy() 6 scope.cancel() 7 } 8}
kotlin
1class MyActivity : AppCompatActivity(), CoroutineScope by MainScope() { 2 override fun onDestroy() { 3 cancel() 4 } 5 6 fun showSomeData() = launch { 7 draw(data) 8 } 9 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/10 00:52