2014-01-12 88 views
1

我正在创建一个应用程序必须有互联网连接, ,如果连接丢失,我需要禁用任何与用户的交互。禁用应用程序与用户互联网连接失去互动android

我通过侦听android.net.conn.CONNECTIVITY_CHANGE来做到这一点。 这很好。

我想把一个警告对话框和灰色从BroadcastReceiver整个背景。

No internet connection

无论如何要做到这一点?

谢谢。

Shahar。

回答

0

如果有人想知道, 我在我的主要活动中使用广播接收器。

/* 
    here we handle connection lost event 
    show a popup over the screen to notify the user 
*/ 
static final String ACTION = "android.net.conn.CONNECTIVITY_CHANGE"; 

public class ConnectionReceiver extends BroadcastReceiver { 
    private static final String TAG = "ConnectionReceiver"; 

    private AlertDialog alertDialog; 

    public ConnectionReceiver() { 
    } 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     if (intent.getAction().equals("android.net.conn.CONNECTIVITY_CHANGE")) { 
      ConnectivityManager cm = 
        (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 

      NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); 
      boolean isConnected = activeNetwork != null && 
        activeNetwork.isConnectedOrConnecting(); 
      if (isConnected) { 
       try { 
        if (alertDialog != null && alertDialog.isShowing()) 
         alertDialog.dismiss(); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } else { 
       if (alertDialog == null || !alertDialog.isShowing()) { 
        AlertDialog.Builder builder = new AlertDialog.Builder(context); 
        builder.setTitle("No internet connection"); 
        builder.setMessage("check your connection."); 
        builder.setCancelable(false); 
        alertDialog = builder.create(); 
        alertDialog.show(); 
       } 
      } 
     } 
    } 
} 
相关问题