public void onServiceConnected(ComponentName name, IBinder iservice) { Log.d("lua", "setting activity"); service = ((Lua.LocalBinder) iservice).getService(); modTable = service.require(modName); if (modTable == null) { finish(); return; } service.setGlobal("current_activity", this); Object res; Object arg = null; if (argRef != 0) { arg = LuaObject.fromReference(Lua.L, argRef); } try { if (modTable.isFunction()) { LuaObject android = service.require("android"); LuaObject aNew = android.getField("new"); res = aNew.call(new Object[] {modTable}); modTable = (LuaObject) res; } res = service.invokeMethod(modTable, "onCreate", this, arg, state); } catch (LuaException e) { log("onCreate " + e.getMessage()); res = null; } if (res == null) { finish(); return; } if (res instanceof View) { setContentView((View) res); } else if (!(res instanceof Boolean)) { log("onCreate must return a View"); finish(); return; } service.invokeMethod(modTable, "onStart"); if (state != null) { super.onRestoreInstanceState(state); } service.invokeMethod(modTable, "onResume"); }