gpt4 book ai didi

java - 等待 onReceive 运行并停止

转载 作者:行者123 更新时间:2023-12-01 12:37:37 24 4
gpt4 key购买 nike

主要目的:重新读取接入点的属性并使用它。

我尝试将自定义 BroadcastReceiver 类添加到我的 Activity 中。

如果这是真的;我了解到; onReceive 在 Intent 操作之后运行,(此处:WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)。

但我认为我必须等到 onReceive 完成运行才能获得新的 r11。

当我调试方法“useResults”时; “使用 r11,修改 r11”行首先运行,一段时间后 onReceive 开始运行。

public class MainActivity extends ActionBarActivity implements OnTouchListener{

int r11=0;


public void useResults(){

mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);

receiverWifi = new WifiReceiver();
registerReceiver(receiverWifi, new IntentFilter( WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
mainWifi.startScan();

//use r11
//modify r11
//do something with r11

}

@Override
protected void onPause() {
unregisterReceiver(receiverWifi);
super.onPause();
}

@Override
protected void onResume() {
registerReceiver(receiverWifi, new IntentFilter(
WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
super.onResume();
}

class WifiReceiver extends BroadcastReceiver {
public void onReceive(Context c, Intent intent) {
wifiList = mainWifi.getScanResults();
for (ScanResult result0:wifiList) {
String ssid0 = result0.SSID;



if(ssid0.compareTo("anID")==0){

r11=result0.level;

}
}
}
}

}

最佳答案

BroadcastReceiver 是一个内部类,使用它调用类上的方法没有任何错误或肮脏。这就是内部类的用途。

只需创建一个单独的方法

void doR11Results(){
//use r11
//modify r11
//do something with r11
}

...并从onReceive调用它。 super 简单!

关于java - 等待 onReceive 运行并停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25444927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com