等待至少为PhoneStateListener获取10个样本[LISTEN_SIGNAL_STRENGTHS]

时间:2015-06-12 12:24:12

标签: android multithreading wait

目前我正在编写一个必须采用用户移动设备信号强度的服务。

就此而言,我已经实现了Service的内部类(比如myPhoneStateListener),它扩展了PhoneStateListener,并且通过覆盖onSignalStrengthsChanged方法,我可以成功读取Signal Strength值(来自getGsmSignalStrength()方法)。 p>

请注意,TelephonyManager实例和侦听器已在Service OnCreate方法中初始化。

问题在于我不希望将onSignalStrengthsChanged体中获得的第一个值作为信号强度值。

我想要实现的是以某种方式等待PhoneStateListener并确保侦听器已生成至少10个样本,然后将最后一个Signal Strength保存为有效值。

请注意,目前我正在阅读Service onStartCommand方法中的值。

为此,我尝试在Service类中定义一个局部变量(作为计数器),每次调用onSignalStrengthsChanged时它都会增加1。另一方面onStartCommand我会等待并检查变量是否达到10:

        while ( m_nSignalStrength_Count < 10 )
        {

            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

但是当我在调试模式中检查时,变量根本没有改变。

0 个答案:

没有答案