opt
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
package com.mogo.utils;
|
||||
|
||||
import android.os.Handler;
|
||||
import android.os.HandlerThread;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020-03-23
|
||||
* <p>
|
||||
* 描述
|
||||
*/
|
||||
public class WorkThreadHandler {
|
||||
|
||||
private Handler mHandler;
|
||||
private HandlerThread mThread;
|
||||
|
||||
private WorkThreadHandler() {
|
||||
// private constructor
|
||||
mThread = new HandlerThread( "work-thread-handler" );
|
||||
mThread.start();
|
||||
mHandler = new Handler( mThread.getLooper() );
|
||||
}
|
||||
|
||||
private static final class InstanceHolder {
|
||||
private static final WorkThreadHandler INSTANCE = new WorkThreadHandler();
|
||||
}
|
||||
|
||||
public static WorkThreadHandler getInstance() {
|
||||
return InstanceHolder.INSTANCE;
|
||||
}
|
||||
|
||||
private Object readResolve() {
|
||||
// 阻止反序列化,必须实现 Serializable 接口
|
||||
return InstanceHolder.INSTANCE;
|
||||
}
|
||||
|
||||
private Object sToken = new Object();
|
||||
|
||||
public boolean post( Runnable r ) {
|
||||
return mHandler != null && mHandler.post( r );
|
||||
}
|
||||
|
||||
public boolean postDelayed(Runnable r, long delayMillis ) {
|
||||
return mHandler != null && mHandler.postDelayed( r, delayMillis );
|
||||
}
|
||||
|
||||
public Handler getWorkThreadHandler() {
|
||||
return mHandler;
|
||||
}
|
||||
|
||||
public boolean postOnceDelayed(Runnable r, long delayMillis ) {
|
||||
if ( mHandler == null ) {
|
||||
return false;
|
||||
} else {
|
||||
mHandler.removeCallbacks( r, sToken );
|
||||
return mHandler.postDelayed( r, delayMillis );
|
||||
}
|
||||
}
|
||||
|
||||
public void removeCallbacks( Runnable runnable ) {
|
||||
if ( mHandler != null ) {
|
||||
mHandler.removeCallbacks( runnable );
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user