Android:广播接收器无法正常工作

时间:2014-11-02 11:16:15

标签: android broadcastreceiver

我有以下连接侦听器类

public class connectionListener{
    public ConnectivityManager conMgr;
    public htmlParserListener vystrahyListener;
    public htmlParserListener podmienkyListener;
    private ConnectivityBroadcastReceiver mReceiver;

    public connectionListener(ConnectivityManager conMgr, htmlParserListener vystrahyListener, htmlParserListener podmienkyListener){
        this.conMgr = conMgr;
        this.vystrahyListener = vystrahyListener;
        this.podmienkyListener = podmienkyListener;
    }

    private class ConnectivityBroadcastReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            System.out.println("connected");
        }
    }
    public synchronized void startListening(Context context) {
            IntentFilter filter = new IntentFilter();
            filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
            context.registerReceiver(mReceiver, filter);
            System.out.println("start");
        }
    }

我使用此代码(来自MainActivity)实例化它:

    connectionListener conLst = new connectionListener(conMgr, vystrahyListener, podmienkyListener);
    conLst.startListening(this);

然而,我正在开始"开始"在输出,所以startListening方法工作,但我没有得到"连接"当我禁用或启用移动数据时。所以看起来我的BroadcastReceiver无法正常工作。我做错了什么?

先谢谢

1 个答案:

答案 0 :(得分:1)

  

禁用或启用移动数据时,我无法“连接”。

这是正确的。启用或禁用移动数据时,不会触发此Broadcast,但仅在网络连接发生更改时才会触发。{/ p>

  

所以看起来我的BroadcastReceiver无法正常工作。我做错了什么?

您的BroadcastReceiver工作正常。但是,您希望CONNECTIVITY_ACTION Broadcast在未触发的情况下触发。

注意:当移动数据的启用状态发生变化时,系统不会发送(其他)Broadcast。您也无法为此更改注册Listener