从单例管理器类发布UI线程

时间:2012-08-03 08:36:50

标签: android thread-safety singleton handler ui-thread

我有一个从Activities(UI线程)调用的单例管理器类,然后它在不同的线程(网络)上运行,并且它应该在调用Activity中调用一个回调方法。

我想知道在UI线程上调用回调方法的最佳方法是什么。 我熟悉这些选项(参见http://android-developers.blogspot.co.il/2009/05/painless-threading.html

所以我想到了两个选择:

第一个: 调用Activities将使用getActivity()方法实现一个接口。该方法将用于调用Activity.runOnUiThread(Runnable)。

第二个: MainApplication,它位于管理器单例中,将传递属于UI线程的Handler实例。

什么是更好的选择? 我也很高兴听到任何其他建议

1 个答案:

答案 0 :(得分:0)

无论您选择哪种选项,您都必须记住,活动具有一定的生命周期,与您的单身类不同,可以完成或移动到后台。鉴于此,您应该再次考虑单身是否真的是这里的最佳选择:如果它需要与活动交互,可能活动应该管理其生命周期。如果它不依赖于任何特定活动,您可能希望将其作为服务并发送广播以通知进度等。

你到底想要做什么?