Мое приложение принудительно закрывается при падении интернет-соединения Android - PullRequest
0 голосов
/ 06 марта 2012

Мое приложение принудительно закрывается при падении интернет-соединения. Я проверил состояние подключения к Интернету в заставке этим методом, и он работает нормально. Дело в том, что когда мое приложение работает нормально, если в подключении к Интернету происходит сбой, происходит сбой всего приложения (принудительное закрытие). Как преодолеть это

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

Ответы [ 2 ]

0 голосов
/ 06 марта 2012
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();

    }
0 голосов
/ 06 марта 2012

Попробуйте это:

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"/>
...