lua学习笔记 1 android 调用Lua, Lua脚本中启动Intent

android 调用Lua, Lua脚本启动Intent


android 中的调用

[java]  view plain copy
  1. try {  
  2.   
  3.     mLuaState.LdoString(readStream(getResources().openRawResource(  
  4.             R.raw.testLua)));  
  5.     // 找到functionInLuaFile函数  
  6.     mLuaState.getField(LuaState.LUA_GLOBALSINDEX, "launchIntent");  
  7.   
  8.     mLuaState.pushJavaObject(getApplicationContext());  
  9.     mLuaState.call(10);  
  10. catch (Exception e) {  
  11.     e.printStackTrace();  
  12.   
  13. }  



readStream 实现

[java]  view plain copy
  1. private String readStream(InputStream is) {  
  2.     try {  
  3.         ByteArrayOutputStream bo = new ByteArrayOutputStream();  
  4.         int i = is.read();  
  5.         while (i != -1) {  
  6.             bo.write(i);  
  7.             i = is.read();  
  8.         }  
  9.         return bo.toString();  
  10.     } catch (IOException e) {  
  11.         Log.e("ReadStream""读取文件流失败");  
  12.         return "";  
  13.     }  
  14. }  


在Android 工程 res/raw/新建lua脚本 testLua.lua


[plain]  view plain copy
  1. -- 启动 intent  
  2. function launchIntent(context)  
  3.     -- new 一个java 实例  
  4.     local intent = luajava.newInstance("android.content.Intent")  
  5.     intent:addFlags(0x10000000)  
  6.     intent:setAction("android.intent.action.VIEW")  
  7.     -- bind 一个Java实例,调用static 方法  
  8.     local uri = luajava.bindClass("android.net.Uri")  
  9.     intent:setData(uri:parse("http://blog.csdn.net/hpccn"))  
  10.     context:startActivity(intent);  
  11. end  


lua 调用 Java中静态类与非静态类的方法不同。

静态类使用

uri = luajava.bindClass("android.net.Uri")

非静态类

intent = luajava.newInstance("android.content.Intent")

在Lua脚本中发启一个Intent, 打开一个网页,就是本人的博客。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序邦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值