新增 阻塞操作加上ui线程判断,在ui线程执行时会抛出异常:
waitForPackage, waitForActivity, http模块的方法没有加callback参数时 findOne(), untilFind()等 sleep()
This commit is contained in:
@@ -9,7 +9,12 @@ module.exports = function(runtime, global){
|
||||
global.log(text);
|
||||
}
|
||||
|
||||
global.sleep = runtime.sleep.bind(runtime);
|
||||
global.sleep = function(t) {
|
||||
if(ui.isUiThread()){
|
||||
throw new Error("不能在ui线程执行阻塞操作,请使用setTimeout代替");
|
||||
}
|
||||
runtime.sleep(t);
|
||||
}
|
||||
|
||||
global.isStopped = function(){
|
||||
return runtime.isStopped();
|
||||
@@ -25,7 +30,6 @@ module.exports = function(runtime, global){
|
||||
|
||||
global.exit = runtime.exit.bind(runtime);
|
||||
|
||||
|
||||
global.stop = global.exit;
|
||||
|
||||
global.setClip = function(text){
|
||||
@@ -47,6 +51,7 @@ module.exports = function(runtime, global){
|
||||
}
|
||||
|
||||
global.waitForActivity = function(activity, period){
|
||||
ensureNonUiThread();
|
||||
period = period || 200;
|
||||
while(global.currentActivity() != activity){
|
||||
sleep(period);
|
||||
@@ -54,12 +59,19 @@ module.exports = function(runtime, global){
|
||||
}
|
||||
|
||||
global.waitForPackage = function(packageName, period){
|
||||
ensureNonUiThread();
|
||||
period = period || 200;
|
||||
while(global.currentPackage() != packageName){
|
||||
sleep(period);
|
||||
}
|
||||
}
|
||||
|
||||
function ensureNonUiThread() {
|
||||
if(ui.isUiThread()){
|
||||
throw new Error("不能在ui线程执行阻塞操作,请在子线程或子脚本执行,或者使用setInterval循环检测当前activity和package");
|
||||
}
|
||||
}
|
||||
|
||||
global.random = function(min, max){
|
||||
if(arguments.length == 0){
|
||||
return Math.random();
|
||||
|
||||
@@ -40,6 +40,9 @@ module.exports = function(runtime, scope){
|
||||
}
|
||||
|
||||
http.request = function(url, options, callback){
|
||||
if(!callback && ui.isUiThread()){
|
||||
throw new Error("不能在ui线程执行网络操作,请加上回调函数的参数callback或在子线程执行");
|
||||
}
|
||||
var call = http.client().newCall(http.buildRequest(url, options));
|
||||
if(!callback){
|
||||
return wrapResponse(call.execute());
|
||||
|
||||
Reference in New Issue
Block a user