Pour du multithread avec un callback c'est pas Runnable que tu dois utiliser mais AsyncTask (simple mais déprécié) ou RxJava (compliqué à prendre en main) si t'es en java. Oublie pas de faire un runOnUiThread dans ton callback pour mettre à jour ton texte.
Sinon la good pratice actuelle en kotlin c'est les coroutines + LiveData mais tu peux pas utiliser les coroutines en Java...