我的 Android 游戏需要从我的服务器获取有关玩家的一些信息。我通过一个简单的 HTTP GET 请求来执行此操作,该请求放在一个线程中。
我正在使用的代码如下。当我的服务器启动并运行应用程序时,它工作正常。但是,当我的服务器没有响应(因为它很忙或关闭)时,应用程序就会崩溃。
我不想让应用程序崩溃,而是向用户显示“网络繁忙”消息并将他送回主要活动,但不知道该怎么做。
我试图在 Catch 部分中创建一个对话框,认为这会显示我的服务器是否已关闭,但它没有显示并且应用程序崩溃。
有什么想法可以解决这个问题吗?
public void run(){
String urlstring = "http://www.mydomain.com/?param=test";
try{
URL url = new URL(urlstring);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
line = reader.readLine();
}
catch(Exception e){
Dialog d2 = new Dialog(context);
d2.setContentView(R.layout.dialog2);
d2.show();
}
}
更新:我想我在查看 logcat 时发现了问题。即使服务器关闭,我的 BufferedReader 也返回一个空字符串,我试图在以后使用它。