如何在 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);
我正在尝试将值传递给代码中的回调函数,
我正在将我的 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);