我刚刚开始关注GreenRobot的EventBus for Android,并对线程有疑问.
我有一个长期运行的进程,我想在后台线程上运行,当完成后,它会更新UI.
所以类似于:
public void onEventBackgroundThread(MyEvent event) {
doSomeLongRunningProcess();
updateUI();
}
Run Code Online (Sandbox Code Playgroud)
显然updateUI()不能在这里调用因为它也会在后台运行.
那么推荐的处理方法是什么?从我的内部触发另一个onEventBackgroundThread()将在UI线程上运行的事件?或者从长时间运行的过程中解雇它?还是有更好的模式?
我BroadcastReceiver在清单中注册了一个接收来自的通知AlarmManager.当应用程序正在运行时,这一切都很有效,即onReceive()正在调用该方法.
但是,如果我强制停止应用程序,以便我可以测试是否BroadcastReceiver仍然会收到来自AlarmManager未运行的通知,onReceive()则永远不会调用该方法.
强制停止不能用AlarmManager这种方式测试接收器吗?似乎有一些回应称它不起作用,有些人说应该这样做.
如果没有,有没有办法测试这个?