1

在我的应用程序中,我保持一个 TCP 连接来传输数据。我想实现以下场景;

我需要听网络变化,所以如果网络断开,我需要通知用户。如果网络再次出现,我需要自动连接并开始流式传输。还有一个限制:如果应用程序处于暂停状态,我不应该开始流式传输。为了实现这一点,我在我的 BaseActivity 中为 CONNECTIVITY_ACTION 注册了一个接收器,并在 onPause() 中注册了相同的 unregisterReceiver。

如果我运行这段代码,onResume() 会无限调用。什么地方出了错?请帮帮我。

提前致谢!

@Override 
protected void onResume() {
        System.out.println("onResume() in BaseActivity"); 
        registerReceiver(connectivityReceiver, new IntentFilter(
                ConnectivityManager.CONNECTIVITY_ACTION));

        super.onResume();
}

并在 onPause()

@Override
    protected void onPause() {
        System.out.println("onPause() in BaseActivity");
        unregisterReceiver(this.connectivityReceiver);
        super.onPause();
    }

这是我的广播接收器

private BroadcastReceiver connectivityReceiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {

                BaseActivity.this.connectionChange(netCheckerHelper(context));
        }
    };
4

0 回答 0