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

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


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

静态类使用

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

非静态类

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

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章