--require导包说明
--使用false,默认从方前脚本或者/data/data/.../files/导入import.lua
--也可以通过package.path来配置搜索路径
require(false)
--使用true
--除去可从上述路径加载import外,还将从云端检验与/data/data/缓存文件是否一致,或者是否有import文件
--如果不一致或没文件将进行下载更新
require(true)
--使用普通字符串
--不影响require的正常使用
require("import")
--或者 require "import" 只有字符串的可省略括号
--加载完毕后就可以import了
import "loadlayout"--import一个文件,loadlayout可以是本地的,也可以是云端的,该文件默认进行云端检验,可在import.lua内删除检验部分
import "java.lang.String" --import一个类
import "Image" --import一个dex并编译,也可以写为import "Image.dex"
--Image.dex为云端dex,导入时默认会检验
import "androidx.a.ImagesUtils" --导入Image中的类
require "import"
import "android.app.*"
import "android.os.*"
import "android.widget.*"
import "android.view.*"
import "android.content.*"
import "android.graphics.drawable.*"
import "android.*"
import "android.ext.BaseActivity"
import "android.content.DialogInterface$OnClickListener"
import "android.widget.ImageView"
import "loadlayout"
compile "Lock"
import "android.ext.LockFunction"
--别在线程里执行gg.searchNumber等函数,否则卡死
--LockFunction中有
--LockUi和unLockUi,用于对Ui线程执行的代码加锁
--LockUi有两个参数,可传可不传
--LockUi(LuaFunction,LuaValue),第一个参数如果不传任何值,那第二个参数默认不传
--第一个参数传函数,第二个参数可传可不传,当需要传递一个或多个参数时用{}把参数包起来
--LockUi有返回值,为传入的参数的执行结果
--unLockUi同理,不过unLockUi是用来释放锁后,执行传入的函数,相当于回调callback
--来自runOnUiThread
--LockMain和unLockMain,用于主线程加锁
--用法同理
--runOnMainThread
--LockWrite和unLockWrite,用于读写线程加锁
--用法同理
--runOnWriteThread
--LockLog和unLockLog,用于带android.ext.Log的程加锁
--用法同理
--runOnLogThread
T={
LinearLayout;
layout_height="fill";
orientation="vertical";
layout_width="fill";
{
Button;
text="刷新日志";
id="alert_button";
background="#7499c9e4";
layout_width="fill";
};
{
ScrollView;
layout_width="match_parent";
id="scorl";
{
TextView;
textIsSelectable="true";
id="logtext";
enabled="true";
focusable="true";
text=[==[日志:
]==];
longClickable="true";
};
};
};
count=0
function alert()
dialog = AlertDialog.Builder(activity,4)--可以设置弹窗样式 1-5 这里设置4
lay = loadlayout(T)
alert_button.setOnClickListener({onClick=function()
count = count + 1
logtext.Text = logtext.getText().toString().."测试"..count.."\n"
end})
dialog.setView(lay)
dialog.setCancelable(false)
dialog.setPositiveButton("确定",{
onClick=function(v,i)
gg.toast("你好")
dialog.create().dismiss()
LockFunction.unLockUi() --释放锁
end})
dialog.setNegativeButton("取消",{
onClick=function(v,i)
gg.toast("取消")
dialog.create().dismiss()
LockFunction.unLockUi()
end})
dialog.setNeutralButton("退出", {
onClick=function(v,i)
gg.toast("退出")
dialog.create().dismiss()
LockFunction.unLockUi()
end})
create = dialog.create()
if (Build.VERSION.SDK_INT >= 26) then
create.getWindow().setType(2038)
else
create.getWindow().setType(2003)
end
dialogView = create.getWindow()
drawable = GradientDrawable()
drawable.setColor(0xCF30A9DE)
drawable.setCornerRadius(30)
dialogView.setBackgroundDrawable(drawable)
create.show()
end
--加锁执行
LockFunction.LockUi(alert)