如何在 android studio 中为 Callable 函数传递值?

how to pass a value for a Callable function in android studio?

我正在尝试将值传递给代码中的回调函数, 我正在将我的 callback 传递给另一个函数,我希望它成为 return callback 状态,

这是我要发送的功能 >

wifiWrapper myWifiWrapper = new wifiWrapper(); //- INIZILIZING WIFI
                    myWifiWrapper.checkWifiState(this, wifiStateCallback);

这是我在 wifiWrapper 中的结束函数 class >

//checks if the wifi is On or Off
    public void checkWifiState (Context context, Callable callback) {


        WifiManager wifi = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);

        boolean isOn;


        if (wifi.isWifiEnabled()){

            Toast.makeText(context.getApplicationContext(), "Your Wi-Fi is enabled", //wifi is enabled
                    Toast.LENGTH_SHORT).show();
            isOn = true;

        } else {

            Toast.makeText(context.getApplicationContext(), "Your Wi-Fi is disabled", //wifi is disabled
                    Toast.LENGTH_SHORT).show();
            isOn = false;

        }



        try { //trys to call back to the callable function
            callback.call();
        } catch (Exception e) {
            e.printStackTrace();
        }


    }

这是我正在传递的 Callable >

//callback for the ifiState
    Callable wifiStateCallback = new Callable() {
        @Override
        public Boolean call() throws Exception {


            return null;
        }
    };

问题是 我想将 isOnState 传递给 callable,但似乎无法实现。 我正在添加

callback.call(isOn);

但是没用说不能应用

您不能凭空向 call() 添加参数并期望它起作用。 Callable 的 call() 是无可争议的。但是,您可以做的是扩展 Callable 并通过构造函数传递您想要的任何内容:

class MyCallable extends Callable {

    boolean isOn;

    public MyCallable(boolean isOn) {
       mIsOn = isOn;
    }

    public Boolean call() throws Exception {
        if (mIsOn) {
           ...
        }
        ...
    }

}

那么

Callable wifiStateCallback = new MyCallable(false);