【问题标题】:BroadcastReceiver implementation广播接收器实现
【发布时间】:2016-05-16 14:49:29
【问题描述】:

在我的应用程序中,当网络状态发生变化时,我希望在 MainActivity 中得到通知。这意味着,我希望我的应用知道何时没有 wifi 连接以及何时有 wifi 连接。

这段代码很简单。我对 BroadcastReceiver 有疑问。 我创建了一个扩展 BroadcastReceiver 的类。这个类可以成功看到什么时候有wifi,什么时候没有。

我的问题是,如何将此信息传递给 MainActivity,以便我的应用在检测到 Wi-Fi 时自动发送其录音?

谢谢

【问题讨论】:

  • 查看我的答案以了解 BroadcastReceiver 机制:stackoverflow.com/a/36665760/4706693
  • 我扩展 BroadcastReceiver 的类已经有一个 onReceive,因为当 wifi 发生变化时它就像一个“触发器”。我想要的是从那个 onReceive 发送一个广播。我不想在我的 MainActivity 中创建 BroadcastReceiver
  • 那么更简单的方法是在清单中声明您的接收器。查看这些答案:stackoverflow.com/a/3767766/4706693stackoverflow.com/a/8780423/4706693
  • 这就是我所拥有的 :) 我现在需要的是扩展 BroadcastReceiver 以向 MainActivity 发送一些信号的类
  • 所以你想要一个广播接收器来捕捉网络变化,以便向你的 mainActivity 发送另一个广播?为什么不让您的 MainActivity 直接订阅网络更改?

标签: android broadcastreceiver


【解决方案1】:

我不想在我的 MainActivity 中创建一个 BroadcastReceiver,所以我创建了一个 BroadcastReceiver 和一个 Intent Service 来做我想做的事情。

广播接收者:

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

    ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo mWifi = connManager.getActiveNetworkInfo();
    try{
        wifi = mWifi.isConnected();
    }
    catch(Exception e){
        Log.d("WifiReceiver", "wifiteste -> No connection");
    }

    if (wifi) {
        Log.d("WifiReceiver", "wifiteste - Wifi Connected");
        Intent background = new Intent(context, BackService.class);
        background.putExtra("wifi",true);
        context.startService(background);
    }
}

意图服务:

@Override
protected void onHandleIntent(Intent intent) {

    Bundle b = new Bundle();
    b = intent.getExtras();
    boolean status = b.getBoolean("wifi");
    if (!status){
        Log.d("BackS", "TESTE ->" + "no wifi");

    }
    else {
        Log.d("BackS", "wifiteste - wifi available information received");
        // Do what you want
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多