BroadcastReceiver实现

时间:2016-05-16 14:49:29

标签: android broadcastreceiver

在我的应用程序中,我希望在网络状态更改时通知MainActivity。这意味着,我希望我的应用程序知道何时没有wifi连接以及何时有wifi连接。

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

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

由于

1 个答案:

答案 0 :(得分:0)

我不想在我的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);
    }
}

IntentService:

@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
    }
}