Я нашел более аккуратный и более модульный способ сделать это.Для этого вам необходимо определить Application Context
.Если у вас есть это, вы можете вызывать RunOnUIThread
из любой библиотеки классов, не имея при этом ссылки на Activity
.
Из любого места в вашей библиотеке классов звоните:
Handler handler = new Handler(Application.Context.MainLooper);
handler.Post(() => doStuff());
Пожалуйста, имейте в виду, что это написано на C #, так как я использую MonoDroid, но я считаю, что это очень похоже на Java.Чтобы узнать, как создать ApplicationContext, посмотрите на этот поток