xxx
来源:互联网 发布:微信交友公众号源码 编辑:程序博客网 时间:2024/06/01 15:37
public void scheduleCheckLocked() { //PMS对应的HandlerChecker没有monitor,因此mMonitors.size()恒等于0 //调用MessageQueue的isPolling函数,判断是否处于polling状态; //当MessageQueue native层的looper处于等待状态,即没有事件需要处理时,isPolling返回true if (mMonitors.size() == 0 && mHandler.getLooper().getQueue().isPolling()) { mCompleted = true; return; } if (!mCompleted) { // we already have a check in flight, so no need return; } mCompleted = false; mCurrentMonitor = null; mStartTime = SystemClock.uptimeMillis(); //HandlerChecker继承runnable,这里的意思是向PMS的handler发送一个HandlerChecker类型的runnable事件 mHandler.postAtFrontOfQueue(this);}public void run() { final int size = mMonitors.size(); //PMS对应的HandlerChecker的mMonitors.size为0,跳过 for (int i = 0 ; i < size ; i++) { synchronized (Watchdog.this) { mCurrentMonitor = mMonitors.get(i); } mCurrentMonitor.monitor(); } //只要PMS的mHandler在规定事件内,执行了上文传入的runnable事件,就说明没有阻塞,PMS是正常的 synchronized (Watchdog.this) { mCompleted = true; mCurrentMonitor = null; }}
public void addMonitor(Monitor monitor) { mMonitors.add(monitor); }
public void monitor() { if (mConnector != null) { mConnector.monitor(); } if (mCryptConnector != null) { mCryptConnector.monitor(); } }
public void monitor() { synchronized (mDaemonLock) { } }
@Override // Watchdog.Monitor implementation public void monitor() { // Grab and release lock for watchdog monitor to detect deadlocks. if (NEU_C3_ALFUS_DEBUG) { Slog.d(TAG, "Power Watchdog.Monitor entry"); } synchronized (mLock) { if (NEU_C3_ALFUS_DEBUG) { Slog.d(TAG, "Power Watchdog.Monitor OK!!!!!"); } } }
0 0
- xxx
- xxx
- xxx
- XXX
- xxx
- xxx
- xxx
- xxx
- xxx
- xxx
- xxx
- xxx
- xxx
- xxx
- xxx
- xxx
- XXX
- xxx
- Postman API Testing 1
- BFC 神奇背后的原理
- HAWQ技术解析(六) —— 定义对象
- 随笔一、博客开篇
- 文章标题
- xxx
- 记忆化搜索 dp(dfs)-帮助Jimmy POJ--1661
- c++ 虚函数的实现机制
- JFinal 用jetty-server的时候 NoClassDefFoundError:org.apache.juli.logging.LogFactory
- java学习——小程序——计算器
- myeclipse复制项目,改名后部署启动出错
- 比特变换器 Bits Equalizer
- Spring的两种代理JDK和CGLIB的区别浅谈
- Android activity切换