0

я пытаюсь проверить подключение к Интернету с BroadcastReceiver.i написал некоторый код ведьма может проверить connection.and сейчас, я хочу, чтобы проверить подключение к примеру каждой 5 мин это мой кодандроид подключения проверки интернет с BroadcastReceiver

public class BroadCastSampleActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 

    Timer timer = new Timer(); 
    timer.schedule(new TimerTask() { 

     @Override 
     public void run() { 
      getApplicationContext().registerReceiver(
        mConnReceiver, 
        new IntentFilter(
          ConnectivityManager.CONNECTIVITY_ACTION)); 

     } 
    }, 2000); 
} 

private BroadcastReceiver mConnReceiver = new BroadcastReceiver() { 
    public void onReceive(Context context, Intent intent) { 
     boolean noConnectivity = intent.getBooleanExtra(
       ConnectivityManager.EXTRA_NO_CONNECTIVITY, false); 
     String reason = intent 
       .getStringExtra(ConnectivityManager.EXTRA_REASON); 
     boolean isFailover = intent.getBooleanExtra(
       ConnectivityManager.EXTRA_IS_FAILOVER, false); 

     NetworkInfo currentNetworkInfo = (NetworkInfo) intent 
       .getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO); 
     NetworkInfo otherNetworkInfo = (NetworkInfo) intent 
       .getParcelableExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO); 

     if (currentNetworkInfo.isConnected() 
       || otherNetworkInfo.isConnected()) { 
      Toast.makeText(getApplicationContext(), "Connected", 
        Toast.LENGTH_LONG).show(); 
     } else { 
      Toast.makeText(getApplicationContext(), "Not Connected", 
        Toast.LENGTH_LONG).show(); 
     } 
    } 
}; 

}

как я могу написать можно проверить соединение каждый раз, (каждые 5 мин) , если кто-нибудь знает решение, пожалуйста, помогите me.thanks

ответ

0

Вы должны использовать AlarmManager, чтобы проверить подключение к Интернету. Проверьте official example и ознакомьтесь с этим tut. Надеюсь, он должен сделать трюк

0

Вы можете использовать Timer для повторения задачи с фиксированным интервалом.

Timer timer = new Timer(); 
t.scheduleAtFixedRate(new TimerTask() { 

    @Override 
    public void run() { 
     boolean internetConnected = checkInternetConnection(); 
    } 

}, 0, 300000); //for repeating every 5 minutes 

public boolean checkInternetConnection(){ 
    //your code 
} 

Надеюсь, это поможет.

+0

Почему вы предлагаете таймер? На некоторых устройствах всегда есть проблемы с таймером. –

+0

@MysticMagic Я изменил свой код и сообщение toas, я могу показать только один раз. Какая ошибка в моем коде>? – lucka