実現したいこと
thread内で使用した変数を関数の戻り値にする
発生している問題・エラーメッセージ
事前に宣言した内容(ここでは変数qtextで内容がerror)が出力され、thread内で更新したはずのデータが更新されていない。
該当のソースコード
kotlin
class ApiModel{ fun fetchApiQuestion():String{ var qtext="error" val moshi = Moshi.Builder() .add(KotlinJsonAdapterFactory()) .build() val retrofit = Retrofit.Builder() .baseUrl("hogehoge.com/") .addConverterFactory(MoshiConverterFactory.create(moshi)) .build() thread{ try { val service: QuestionService = retrofit.create(QuestionService::class.java) val questionApiResponse = service.fetchQuestion().execute().body() ?: throw IllegalStateException("body is null") qtext = questionApiResponse.toString() Log.d("response", qtext) Log.d("response-msg",qtext) }catch (e: Exception) { Log.d("response", "debug $e") } } Log.d("response-return",qtext) return qtext }}
試したこと
thread外での宣言やthread内での宣言
0 コメント