簡體   English   中英

互聯網斷開前的廣播接收器

[英]broadcast receiver before internet disconnects

我想知道在Android設備上,一旦用戶單擊wifi斷開連接按鈕以運行方法,是否可以在設備斷開與互聯網的連接之前進行廣播,我已經在使用廣播接收器來捕獲網絡更改,但是它已執行互聯網斷開后我使用下面的代碼:

public class InternetReceiver extends BroadcastReceiver {

@Override
public void onReceive(final Context context, final Intent intent) {
    if (isNetworkAvailable(context) && !isMyServiceRunning(MessagingService.class,context)){
        Intent i = new Intent(context,MessagingService.class);
        context.startService(i);
        Log.e("service started ","true");
    }

}

private boolean isMyServiceRunning(Class<?> serviceClass, Context c) {
    ActivityManager manager = (ActivityManager) c.getSystemService(Context.ACTIVITY_SERVICE);
    for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
        if (serviceClass.getName().equals(service.service.getClassName())) {
            return true;
        }
    }
    return false;
}


public boolean isNetworkAvailable(Context c) {
    ConnectivityManager connectivityManager
            = (ConnectivityManager)  c.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
}

連接互聯網后,我正在使用上面的代碼來運行服務,但這只是一個示例

編輯:我假設你想對用戶點擊wifi斷開按鈕做出反應

您可以使用Android的WifiManager檢查wifi連接的狀態,它提供了一些獲取有關您的wifi環境和連接的信息的可能性。

可以建立或拆除連接,並且可以查詢關於網絡狀態的動態信息。

資料來源: http//developer.android.com/reference/android/net/wifi/WifiManager.html

看一下以下內容。 我想這對你有幫助。

WIFI_STATE_CHANGED_ACTION廣播意圖操作,指示已啟用,禁用,啟用,禁用或未知Wi-Fi。

int WIFI_STATE_DISABLED Wi-Fi已禁用。

int WIFI_STATE_DISABLING當前正在禁用Wi-Fi。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM