【问题标题】:My app get force closes when there is a fall in Internet connection-Android当互联网连接下降时,我的应用程序会强制关闭-Android
【发布时间】:2012-03-06 05:20:44
【问题描述】:

当互联网连接中断时,我的应用程序会强制关闭。 我已经通过这种方法检查了启动画面中的互联网连接状态,它工作正常。问题是当我的应用程序运行流畅时,如果互联网连接出现故障,它会使整个应用程序崩溃(强制关闭)..如何克服这个问题

公共布尔isNetworkAvailable()

{
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = cm.getActiveNetworkInfo();

    if (networkInfo != null && networkInfo.isConnected())
    {
        return true;
    }
    return false;
}

1 活动: vec = WSSender.getname(字母, "0", "100",字典);

网络服务活动:

   public static Vector getname(String str,String str1, String str2, String str3) throws IOException, Exception
   {

           SoapObject request = new SoapObject(WSConstants.NAMESPACE, WSConstants.METHOD_NAME);
           request.addProperty("letter",str);
           request.addProperty("start", str1);
           request.addProperty("end", str2);
           request.addProperty("tableName",str3);
           SoapObject resultObject = send(request,WSConstants.SOAP_ACTION );
           //String prelist = resultObject.toString();
           Vector preList = WSResponseParser.parseDetailforhn(resultObject);
           return preList;
   }

【问题讨论】:

  • 上传堆栈跟踪。
  • 失去连接不会杀死你的应用程序,除非代码正在做某事并且它没有正确处理连接丢失。发布您的 logcat 以显示引发的异常及其发生的代码。
  • 在您的应用程序中,如果您在调用完成之前同时调用http服务,如果网络连接失败,可能会发生这种情况,您可以先检查网络连接,然后发出请求,然后一定要放置异常处理程序来正确处理异常

标签: android android-layout android-intent android-emulator


【解决方案1】:

试试这个:

hello.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View paramView) {
        net = isOnline();
        Toast.makeText(SampleActivity.this, "Hello", Toast.LENGTH_LONG).show();
    }
});

private boolean isOnline() {
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isConnected()) {
        return true;
    } else {
        return false;
    }
}

在清单中添加权限:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

【讨论】:

  • Nitesh,pankaj:我做了同样的事情,而不是烤面包关闭 wifi 它会强制关闭 ehile 从 web 服务获取数据
【解决方案2】:
You have to perform below check not only in the splash screen but all the places in the appp where internet related tasks are done i.e date upload or download

 //decleration
boolean net;

//onCreate
net = isOnline();
if (net == true)
{
//perform internet related tasks in the app
}

//function
public boolean isOnline() {
        ConnectivityManager cm = (ConnectivityManager) this
                .getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkInfo activeNetworkInfo = cm.getActiveNetworkInfo();
        return activeNetworkInfo != null;

        // return cm.getActiveNetworkInfo().isConnected();

    }

【讨论】:

  • 我自己使用网络服务,它从互联网获取数据,我的网络服务方法在另一个类中。是否可以检查我何时调用另一个活动的方法。
  • 在您调用该方法的地方执行我建议的上述检查。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-12
相关资源
最近更新 更多