2013-03-18 2 views
0

У меня проблема с значением силы сигнала.
Я хочу поставить значение силы сигнала внутри функции onCreate, но дает мне нулевое значение. Но когда я тестирую его внутри PhoneStateListener, он дает мне значение , которое равно 7. Любая идея? вот мой код.Сила сигнала - asu

package com.example.activitylifecycle; 
import android.app.Activity; 
import android.content.Context; 
import android.os.Bundle; 
import android.telephony.PhoneStateListener; 
import android.telephony.TelephonyManager; 
import android.util.Log; 
public class ActivitySignal extends Activity { 
    private static final String TAG = "ActivitySignal"; 
    private int signalAsu = 0; 
    PhoneStateListener signalListener=new PhoneStateListener() 
    { 
    public void onSignalStrengthChanged(int asu) 
    { 
     Log.d(TAG, "SignalStrength: " + String.valueOf(asu)); // It gives me a value which is 7 
     signalAsu = asu; 
    } 
    }; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    TelephonyManager SignalManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
    SignalManager.listen(signalListener,PhoneStateListener.LISTEN_SIGNAL_STRENGTH); 
    //another log test 
    Log.d(TAG, "SignalStrength: " + String.valueOf(signalAsu)); // zero value.. 
    } 
} 

ответ

0

onCreate запущен, и вы установили signalAsu на 0 в активности. Таким образом, ваш журнал скажет «нуль» с signalAsu еще не изменился. Не обращайте внимание на значение init, равное нулю, и просто слушайте, когда вызывается onSignalStrengthChanged, как и в вашем журнале.

+0

Можно ли установить силу сигнала в элементе управления EditText? ех. EditText.setText (ASU); – user2090420

+0

Да, возможно, вам понадобится использовать Handler или runOnUiThread при использовании setText. Вы заметите, что если он сработает. –

Смежные вопросы