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, 打開一個網頁,就是本人的博客。


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