Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 当互联网连接关闭时,我的应用程序崩溃_Android_Broadcastreceiver - Fatal编程技术网

Android 当互联网连接关闭时,我的应用程序崩溃

Android 当互联网连接关闭时,我的应用程序崩溃,android,broadcastreceiver,Android,Broadcastreceiver,在我的应用程序中,我正在检查互联网连接是否可用。我用的是广播接收器。当我运行我的应用程序时,(当互联网连接时),它可以工作。但当我断开互联网时,它就会崩溃。发生了什么。 这是我的密码: 我的活动: public class BroadcastActivity extends ActionBarActivity { private static Button mButton; @Override protected void onCreate(Bundle savedInsta

在我的应用程序中,我正在检查互联网连接是否可用。我用的是广播接收器。当我运行我的应用程序时,(当互联网连接时),它可以工作。但当我断开互联网时,它就会崩溃。发生了什么。 这是我的密码: 我的活动:

public class BroadcastActivity extends ActionBarActivity {
  private static Button mButton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_broadcast);
        Intent intent=new Intent(this, ConnectionReciever.class);
        sendBroadcast(intent);

    }


}
接收器类别:

public class ConnectionReciever extends BroadcastReceiver{

    @Override
    public void onReceive(Context context, Intent intent) {
        ConnectivityManager connectivityManager=(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetInfo=connectivityManager.getActiveNetworkInfo();
        if(activeNetInfo!=null & activeNetInfo.isConnected())
        {
            Toast.makeText(context, "Internet Connection is Active", Toast.LENGTH_LONG).show();
        }
        else{
            Toast.makeText(context, "Internet Connection Timed Out! Please Try Again!!", Toast.LENGTH_LONG).show();
        }

    }

}
我还在清单中添加了权限,并在清单中注册了接收者

日志类别:

    Failed to install Check_Network_Status.apk on device 'emulator-5554': adb rejected install command with: device offline
    [2014-05-15 12:09:48 - Check_Network_Status] com.android.ddmlib.AdbCommandRejectedException: device offline
    [2014-05-15 12:09:48 - Check_Network_Status] Launch canceled!

替换receiver类中的以下代码,您需要在if中检查是否还有一个条件isAvailable()

ConnectivityManager connectivityManager=(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetInfo=connectivityManager.getActiveNetworkInfo();
    if(activeNetInfo!=null && activeNetInfo.isAvailable() && activeNetInfo.isConnected())
    {
        Toast.makeText(context, "Internet Connection is Active", Toast.LENGTH_LONG).show();
    }
    else{
        Toast.makeText(context, "Internet Connection Timed Out! Please Try Again!!", Toast.LENGTH_LONG).show();
    }

退出eclipse,杀死adb并重新启动eclipse。
尝试
adb kill server
adb start server
重新启动adb。可以在android sdk目录下的子文件夹工具中找到它。

在此处发布日志猫。请发布代码和日志猫…以及代码。我有一个查询。静态注册接收器时,是否可以使用sendBroadcast()。是否有其他方式发送广播?如果是,您可以动态抵制取消注册接收器,您可以检查此链接以执行此操作。这意味着如果我们在清单中注册广播接收器,必须使用sendBroadcast()?