function ThreadWrapper() {
}
var thread = new ThreadWrapper();
/**
* 设定延迟多少毫秒后执行函数,在子线程中执行
* @param func 要执行的函数
* @param timeout 延迟时间,单位是毫秒
* @return {null|string} 线程对象ID 该对象可以进行取消
*/
function setTimeout(func, timeout) {
if (threadWrapper == null) {
return;
}
if (isStableJs()) {
return threadWrapper.setTimeoutRh(func, timeout)
}
return null;
}
/**
* 取消延迟执行
* @param t 要取消的线程对象ID
*/
function cancelTimeout(t) {
if (threadWrapper == null) {
return;
}
if (isStableJs()) {
threadWrapper.cancelTimeoutRh(t)
}
}
/**
* 设置多少周期进行执行一次,在子线程中执行
*
* @param func 函数
* @param interval 周期时间,单位是毫秒
* @return {null|string} 线程对象ID 该对象可以进行取消
*/
function setInterval(func, interval) {
if (threadWrapper == null) {
return;
}
if (isStableJs()) {
return threadWrapper.setIntervalRh(func, interval)
}
return null;
}
/**
* 取消周期执行的函数
* @param t 要取消的函数
*/
function cancelInterval(t) {
if (threadWrapper == null) {
return;
}
if (isStableJs()) {
threadWrapper.cancelIntervalRh(t)
}
}
/**
* 设置多少周期进行执行一次,在子线程中执行
*
* @param runnable 函数
* @param interval 周期时间,单位是毫秒
* @return {null|string} 线程对象ID 该对象可以进行取消
*/
ThreadWrapper.prototype.setInterval = function (runnable, interval) {
if (threadWrapper == null) {
return null;
}
if (isStableJs()) {
return threadWrapper.setIntervalRh(runnable, interval);
}
return null;
};
/**
* 取消周期执行的函数
*
* @param t 线程对象ID
*/
ThreadWrapper.prototype.cancelInterval = function (t) {
if (threadWrapper == null) {
return null;
}
if (isStableJs()) {
threadWrapper.cancelIntervalRh(t);
}
};
/**
* 设定延迟多少毫秒后执行函数,在子线程中执行
* @param runnable 要执行的函数
* @param timeout 延迟时间,单位是毫秒
* @return {null|string} 对象 线程对象ID
*/
ThreadWrapper.prototype.setTimeout = function (runnable, timeout) {
if (threadWrapper == null) {
return null;
}
if (isStableJs()) {
return threadWrapper.setTimeoutRh(runnable, timeout);
}
return null;
};
/**
* 取消延迟执行
* @param t 线程对象ID
*/
ThreadWrapper.prototype.cancelTimeout = function (t) {
if (threadWrapper == null) {
return;
}
if (isStableJs()) {
threadWrapper.cancelTimeoutRh(t);
}
};
/**
* 异步执行线程,这里会将Runnable放到线程池中进行管理
*
* 运行环境: 无限制
*
* 兼容版本: Android 4.4 以上
*
* @param runnable Runnable对象
* @return {null|string} 线程对象ID
*/
ThreadWrapper.prototype.execAsync = function (runnable) {
if (threadWrapper == null) {
return null;
}
if (isStableJs()) {
return threadWrapper.execAsyncRh(runnable);
}
return null;
};
/**
* 取消线程的执行
* @param t 线程对象ID
* @return {boolean}
*/
ThreadWrapper.prototype.cancelThread = function (t) {
if (threadWrapper == null) {
return true;
}
if (isStableJs()) {
threadWrapper.cancelThread(t);
}
return true;
};
/**
* 取消线程的执行
* @param t 线程对象ID
* @return {boolean} true代表已经取消了,false表示未取消
*/
ThreadWrapper.prototype.isCancelled = function (t) {
if (threadWrapper == null) {
return true;
}
return threadWrapper.isCancelled(t);
};
/**
* 取消所有正在运行的线程
*/
ThreadWrapper.prototype.stopAll = function () {
if (threadWrapper == null) {
return;
}
threadWrapper.stopAll();
};
/**
* 执行某个函数并且等待true返回,如果函数中返回的是true,该方法将立刻执行完毕
*
* 运行环境: 无限制
*
* 兼容版本: Android 4.4 以上
*
* @param condition 条件函数
* @param timeout 超时时间,单位是毫秒
* @return {boolean} 返回一个布尔型值
*/
ThreadWrapper.prototype.execSync = function (condition, timeout) {
if (threadWrapper == null) {
return null;
}
if (isStableJs()) {
return threadWrapper.execFuncSyncRh(condition, timeout);
} else if (isFastJs()) {
return threadWrapper.execFuncSyncV8(condition, timeout);
}
};
/**
* 执行某个函数并且等待true返回,如果函数中返回的是true,该方法将立刻执行完毕
*
* 运行环境: 无限制
*
* 兼容版本: Android 4.4 以上
*
* @param condition 条件函数
* @param timeout 超时时间,单位是毫秒
* @return {boolean} 返回一个布尔型值
*/
function execSync(condition, timeout) {
return thread.execSync(condition, timeout);
}