Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.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
Java 互联网速度差时未显示Toast消息_Java_Android_Android Toast - Fatal编程技术网

Java 互联网速度差时未显示Toast消息

Java 互联网速度差时未显示Toast消息,java,android,android-toast,Java,Android,Android Toast,我面临着一些奇怪的问题。我是应用程序中的登录用户,但在此之前我检查了互联网连接。为此,我敬酒的消息说,等待,而我们正在验证您的详细信息。这一切都很好,但当网络不好时,它不会发送任何消息,并且需要时间登录 这是我的密码 @Override public void onClick(View view) { switch (view.getId()) { case R.id.btn_google_signin: showToast(getStrin

我面临着一些奇怪的问题。我是应用程序中的登录用户,但在此之前我检查了互联网连接。为此,我敬酒的消息说,等待,而我们正在验证您的详细信息。这一切都很好,但当网络不好时,它不会发送任何消息,并且需要时间登录

这是我的密码

   @Override
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.btn_google_signin:
            showToast(getString(R.string.signing_in_wait_text));   // This message is not shown on poor network
            overLay.setVisibility(View.VISIBLE);
            if (AppUtil.isNetAvailable(this)) {
                Intent intent = Auth.GoogleSignInApi.getSignInIntent(googleApiClient);
                startActivityForResult(intent, REQUEST_CODE);
            } else {
                showToast(getString(R.string.internet_connection_down_or_poor));
                overLay.setVisibility(View.GONE);
            }
            break;
    }
}

 private void showToast(String msg) {
    Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show();
}
overlay是我的加载视图,用于通知他正在登录应用程序。下面是我的isNetAvailable()方法

InternetConnectionTest是检查internet的一个任务。这就是我检查互联网的方式

    private static class InternetConnectionTest extends AsyncTask {
    Context context;

    InternetConnectionTest(Context context) {
        this.context = context;
    }


    @Override
    protected Boolean doInBackground(Object[] objects) {

        Boolean success = false;
        try {
            URL url = new URL("https://google.com");
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setConnectTimeout(10000);
            connection.connect();
            success = connection.getResponseCode() == 200;
        } catch (Exception e) {
            e.printStackTrace();

        }
        finally {
            return success;
        }
    }

当网速很好时,一切正常。当我的设备未连接到internet时,它会显示internet已关闭的消息。但当我的网速很低时,问题就来了。登录需要一些时间,但不会显示toast消息。请帮助

当网络速度较慢时,这意味着连接超过了您设置的超时,
所以你可以在doInBackground方法的catch块中添加你的toast方法,我认为它会起作用的

连接速度不应阻止吐司显示。你确定它击中那条线了吗?在那里放一个断点或一个Log.d来确保。@billynomates即使我想知道为什么会发生这种情况。我用log和log.d。。。Toast消息行正在执行,但屏幕上没有显示Toast您自己说过检查连接是一项异步任务,但在您的情况下不是,因为您停止运行线程以等待它完成。如果Toast也是一项任务,那么停止当前线程的运行可能意味着您将无法看到Toast的出现,因为它会很快闪烁。@M.Prokhorov谢谢你。。。。我从异步任务中删除了.get(),并做了所有必要的更改,现在一切正常
    private static class InternetConnectionTest extends AsyncTask {
    Context context;

    InternetConnectionTest(Context context) {
        this.context = context;
    }


    @Override
    protected Boolean doInBackground(Object[] objects) {

        Boolean success = false;
        try {
            URL url = new URL("https://google.com");
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setConnectTimeout(10000);
            connection.connect();
            success = connection.getResponseCode() == 200;
        } catch (Exception e) {
            e.printStackTrace();

        }
        finally {
            return success;
        }
    }