简体   繁体   English

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

[英]Android: broadcast receiver not working

I have the following class for connection listener 我有以下用于连接侦听器的类

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");
        }
    }

I instantiate it with this code (from MainActivity): 我用以下代码实例化(来自MainActivity):

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

However I am getting "start" at output so startListening method works but I dont get "connected" when I disable or enable mobile data. 但是,我在输出中获得了“开始”,所以startListening方法可以工作,但是在禁用或启用移动数据时却没有“连接”。 So it looks like my BroadcastReceiver is not working. 因此,看来我的BroadcastReceiver无法正常工作。 What am I doing wrong? 我究竟做错了什么?

Thanks in forward 谢谢前进

I dont get "connected" when I disable or enable mobile data. 禁用或启用移动数据时,我没有“连接”。

That is correct. 那是对的。 This Broadcast is not triggered when mobile data is enabled or disabled but only when the network connectivity changes. 启用或禁用移动数据时不会触发此Broadcast ,只有在网络连接更改时才会触发。

So it looks like my BroadcastReceiver is not working. 因此,看来我的BroadcastReceiver无法正常工作。 What am I doing wrong? 我究竟做错了什么?

Your BroadcastReceiver is working correctly. 您的BroadcastReceiver正常工作。 However, you expect the CONNECTIVITY_ACTION Broadcast to be triggered at an event where it isn't triggered. 但是,您希望CONNECTIVITY_ACTION Broadcast在未触发的事件时触发。

Note: there exists no (other) Broadcast which is sent by the system when the enabled state of mobile data is changed. 注意:当移动数据的启用状态更改时,系统不发送(其他) Broadcast You also have no option to register a Listener for this change. 您也没有选择注册此更改的Listener

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM