Github:<a href="https://github.com/FeiMo1988/PopupWindowFragment"> PollService</a>
PollService为程序提供单线程轮询服务(轮询只是暂时解决问题的解决方案)。
1.获取服务###
PollService.getService()
2.订阅轮询服务###
PollService.subscribe(
String pollName, //轮询服务名称
long pollTime, //轮询的时间
long timeOut, //轮询超时
PollCallback callback//轮询回调
)
*进程可以通过调用PollService.subscribe 方法来订阅轮询服务,在订阅的时候,调用者必须要指定轮询服务的name:pollName。还有轮询服务的轮询回调。
*轮询的时间由pollTime指定,单位是毫秒
*timeOut是用于给轮询线程设置轮询超时时间。轮询超时以Callback解除订阅或者Callback被回收为起点。如果你并不希望轮询线程被关闭,可以指定这个参数为:<strong>TIME_OUT_NEVER</strong>。相反,你如果希望你的线程立马被关闭的话,那就指定为:<strong>TIME_OUT_DESTORY_IF_CALLBACK_NULL</strong>
3.解除轮询订阅服务###
解除轮询订阅有两种方法:
1.一旦你的Callback成为垃圾对象,并且被回收,轮询线程将自动解除这种订阅
2.通过callback中的unSubscribe()可以解除订阅
PollCallback mPollCallbackImpl = new ...
mPollCallbackImpl.unSubscribe();
解除订阅之后,轮询线程将进入超时检测,就是上面的第二条。