android 调用Lua,Lua脚本启动Intent
android 中的调用
try { mLuaState.LdoString(readStream(getResources().openRawResource( R.raw.testLua))); // 找到functionInLuaFile函数 mLuaState.getField(LuaState.LUA_GLOBALSINDEX,"launchIntent"); mLuaState.pushJavaObject(getApplicationContext()); mLuaState.call(1,0); } catch (Exception e) { e.printstacktrace(); }
readStream 实现
private String readStream(InputStream is) { try { ByteArrayOutputStream bo = new ByteArrayOutputStream(); int i = is.read(); while (i != -1) { bo.write(i); i = is.read(); } return bo.toString(); } catch (IOException e) { Log.e("ReadStream","读取文件流失败"); return ""; } }
在Android 工程 res/raw/新建lua脚本 testLua.lua
-- 启动 intent function launchIntent(context) -- new 一个java 实例 local intent = luajava.newInstance("android.content.Intent") intent:addFlags(0x10000000) intent:setAction("android.intent.action.VIEW") -- bind 一个Java实例,调用static 方法 local uri = luajava.bindClass("android.net.Uri") intent:setData(uri:parse("http://blog.csdn.net/hpccn")) context:startActivity(intent); end
静态类使用
uri = luajava.bindClass("android.net.Uri")
非静态类
intent = luajava.newInstance("android.content.Intent")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。