【问题标题】:Android application that shows a dialog if disconnected from a server与服务器断开连接时显示对话框的 Android 应用程序
【发布时间】:2016-05-02 17:35:46
【问题描述】:

我正在构建一个控制同一网络上的设备的 Android 应用程序(细节无关紧要)。连接是通过带有套接字的 TCP 设置的。

这就是我想要做的:

  • 在应用启动时显示一个对话框,要求用户连接(该对话框已构建!)
  • 如果连接丢失则中断活动,并显示另一个对话框

该应用由 MainActivity 和 Fragment 布局构建,用于管理不同的选项卡。 请记住,我对 Android 编程还很陌生,我主要是在寻找最好的编码方式,而不是四处修补:)

现在,相对于连接,我有一个 MainActivity,它在其 onCreate() 方法中实例化一个“连接”对象。当调用“连接”来创建套接字并将其绑定到服务器时,“连接”本身会执行一个异步任务。

感谢您的帮助!

【问题讨论】:

    标签: android performance sockets tcp


    【解决方案1】:

    你可以检查这个已回答的问题:

    How to check if TCP socket is connected in android app

    您可以使用 asyncTask 使其每 {1-5} 秒检查一次,如果未连接,它会抛出一个新对话框

    【讨论】:

      【解决方案2】:

      您可以使用以下代码检查互联网连接:

       ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
          if(connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED ||
                  connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {
         //write the code which established connection with server
      }else{
         // generate a alert
      }
      

      【讨论】:

      • 感谢您的意见!这不就是检查设备是否连接到互联网吗?
      • 当然它只检查设备与互联网的连接。
      • 设备本身不需要连接到互联网。我连接到同一网络上的服务器,它没有任何互联网连接。我只需要定期检查套接字是否仍然正确绑定到服务器
      • 然后您可以点击以下链接:stackoverflow.com/questions/698964/…
      猜你喜欢
      • 1970-01-01
      • 2020-08-17
      • 2023-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-13
      • 2010-12-07
      • 2013-08-07
      相关资源
      最近更新 更多