thread内で作成した変数を関数の戻り値にする方法

実現したいこと

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 コメント