Android service to check internet connectivity?

前端 未结 2 1107
终归单人心
终归单人心 2020-12-01 02:14

I want to create an Android service, which notifies the main activity whenever disconnects and when internet reconnects again. I have following function for checking interne

2条回答
  •  囚心锁ツ
    2020-12-01 03:01

    Services are designed for long backgroud running task. You should use a BroadcastReceiver:

    This is a sample method I use to monitor the network state into my main Activity:

    private void installListener() {
    
            if (broadcastReceiver == null) {
    
                broadcastReceiver = new BroadcastReceiver() {
    
                    @Override
                    public void onReceive(Context context, Intent intent) {
    
                        Bundle extras = intent.getExtras();
    
                        NetworkInfo info = (NetworkInfo) extras
                                .getParcelable("networkInfo");
    
                        State state = info.getState();
                        Log.d("InternalBroadcastReceiver", info.toString() + " "
                                + state.toString());
    
                        if (state == State.CONNECTED) {
    
                            onNetworkUp();
    
                        } else {
    
                            onNetworkDown();
    
                        }
    
                    }
                };
    
                final IntentFilter intentFilter = new IntentFilter();
                intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
                registerReceiver(broadcastReceiver, intentFilter);
            }
        }
    

    Remember to call unregisterReceiver when the onDestroy event occurs

    Hope this help.

提交回复
热议问题