跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 这种情况下 EventBus 的函数还能执行完吗?
未分類
31 12 月 2020

这种情况下 EventBus 的函数还能执行完吗?

这种情况下 EventBus 的函数还能执行完吗?

資深大佬 : QBugHunter 1

有个类继承自 Thread

class MyThread extends Thread{     @Override     public void run(){         while(online){             doSomehing();         }     } };  public void finishThread(){     online = false; }  @Subscribe(threadMode = ThreadMode.BACKGROUND) public void printLog(DeviceLog deviceLog){     writeLog(deviceLog); } 

对于这样一个线程类,在运行过程中设备其他 Activity 有代码

EventBus.getDefault().post(new DeviceLog()); 

然后此时线程开始执行 writeLog()函数,假设改函数需要执行比较长的时间,然后在这段时间内,调用了线程的 finishThread()函数,此时线程 run()函数结束,但 wrtiLog()函数尚未执行完成,那这种情况下,能否保证 wrtiLog()函数执行完?

大佬有話說 (1)

  • 資深大佬 : kzaemrio

    不太看得懂,感觉描述不全面

    假设这个 eventbus 正确地被注册,正确地收到了事件,那么 writeLog(deviceLog) 会运行在 eventBus.getExecutorService() 上,和这个 MyThread 应该无关

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具