コード例 #1
0
ファイル: LuaActivity.java プロジェクト: simonwu-os/AndroLua
  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");
  }