java - 等待 onReceive 运行并停止

标签 java android broadcastreceiver

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

我尝试将自定义 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/

相关文章:

android - 为什么我的 Android Eclipse 模拟器永远无法启动?

java - JSONObject keySet() 函数不存在吗?

android - 在特定时间自动更改 Android 配置文件模式

java - 检查字符串是否等于 Android/Java

java - 是什么原因导致 "Can' t find Symbol”以及如何解决?

Java-Stream-API : Map Reduce

android - BroadcastReceiver/Widget 自定义 Intent 过滤器自行触发

java - 为什么保存按钮在我的示例 Android 应用程序中不起作用

java - 如何使用 Robolectric 测试 AsyncTask?

broadcastreceiver - 应用安装后删除 Apk