Toast message not poor on internet speed

问题描述:

我正面临一些奇怪的问题。我登录用户在我的应用程序,但在此之前,我检查互联网连接。为此我敬酒信息说,等待,而我们正在验证你的细节。这一切工作正常,但是当网络很差不敬酒的任何消息,需要时间进行登录。Toast message not poor on internet speed

这是我的代码

@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(); 
} 

覆盖是我加载视图,通知他在签约应用程序。下面是我的isNetAvailable()方法

public static boolean isNetAvailable(final Context context) { 

    boolean isInternetWorking = false; 
    try { 
     isInternetWorking = (boolean) new InternetConnectionTest(context).execute().get(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    finally { 
     return isInternetWorking; 
    } 
} 

InternetConnectionTest是asyntask它检查互联网。这是我如何检查互联网

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

当互联网速度是好的一切工作正常。而当我的设备没有连接到互联网时,它显示互联网信息已关闭。但是,当我的网速很低时就会出现问题。登录需要一些时间,但不会显示敬酒信息。请帮忙

+0

连接速度不应该阻止吐司显示。你确定它击中了那条线吗?在那里放置一个断点或一个Log.d来确保。 –

+0

@billynomates即使我想知道为什么会发生这种情况。我使用了log和Log.d ... Toast消息行正在执行,但屏幕上没有吐司 – FaisalAhmed

+1

您自己说过,检查连接是异步任务,但在您的情况中不是,因为您停止运行线程以等待它完成。如果吐司也是一项任务,那么停止当前线程运行可能意味着您将无法看到吐司显示,因为它会非常快速地闪烁。 –

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