2012-09-23 2 views
2

인터넷 연결을 사용하는 응용 프로그램을 만들고 있습니다. 데이터를 다운로드하려고 할 때 인터넷 연결 응용 프로그램이 강제로 닫히지 않습니다. 응용 프로그램에서 강제 종료 메시지를 표시하지 않고 "연결이 없습니다 ..."와 같이 내 자신의 메시지를 보내고 싶으면 무엇을해야합니까? 감사!안드로이드는 연결이 끊어지면 닫습니다.

내 로그 캣 출력 :

09-23 14:56:15.411: E/AndroidRuntime(20770): FATAL EXCEPTION: main 
09-23 14:56:15.411: E/AndroidRuntime(20770): java.lang.RuntimeException: Unable to start activity ComponentInfo{lt.prasom/lt.prasom.GoodOffers}: java.lang.NullPointerException 
09-23 14:56:15.411: E/AndroidRuntime(20770): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
09-23 14:56:15.411: E/AndroidRuntime(20770): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
09-23 14:56:15.411: E/AndroidRuntime(20770): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
09-23 14:56:15.411: E/AndroidRuntime(20770): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
09-23 14:56:15.411: E/AndroidRuntime(20770): at android.os.Handler.dispatchMessage(Handler.java:99) 
09-23 14:56:15.411: E/AndroidRuntime(20770): at android.os.Looper.loop(Looper.java:130) 
09-23 14:56:15.411: E/AndroidRuntime(20770): at android.app.ActivityThread.main(ActivityThread.java:3683) 
09-23 14:56:15.411: E/AndroidRuntime(20770): at java.lang.reflect.Method.invokeNative(Native Method) 
09-23 14:56:15.411: E/AndroidRuntime(20770): at java.lang.reflect.Method.invoke(Method.java:507) 
09-23 14:56:15.411: E/AndroidRuntime(20770): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
09-23 14:56:15.411: E/AndroidRuntime(20770): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
09-23 14:56:15.411: E/AndroidRuntime(20770): at dalvik.system.NativeStart.main(Native Method) 
09-23 14:56:15.411: E/AndroidRuntime(20770): Caused by: java.lang.NullPointerException 
09-23 14:56:15.411: E/AndroidRuntime(20770): at java.io.StringReader.<init>(StringReader.java:46) 
09-23 14:56:15.411: E/AndroidRuntime(20770): at lt.prasom.functions.XMLParser.getDomElement(XMLParser.java:73) 
09-23 14:56:15.411: E/AndroidRuntime(20770): at lt.prasom.GoodOffers.onCreate(GoodOffers.java:68) 
09-23 14:56:15.411: E/AndroidRuntime(20770): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
09-23 14:56:15.411: E/AndroidRuntime(20770): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
09-23 14:56:15.411: E/AndroidRuntime(20770): ... 11 more 
+0

는 관련 코드와 예외에 대한 로그 캣 출력을 보여주십시오

if(!isNetworkAvailable(context)) // Show Toast here... else //perform action ... 

는 희망이 도움이

public static boolean isNetworkAvailable(Context context) { ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivity != null) { NetworkInfo[] info = connectivity.getAllNetworkInfo(); if (info != null) { for (int i = 0; i < info.length; i++) { if (info[i].getState() == NetworkInfo.State.CONNECTED) { return true; } } } } return false; } 

아래와 같이 함수를 호출 할 수 있습니다 ... .. – Simon

+0

있습니다 꽤 여기에있는 사람들은 거의 없습니다. [하나] (http://stackoverflow.com/questions/4086159/checking-internet-connection-on-android), [두] (http://stackoverflow.com/questions/4154561/how-to-determine-if 인터넷 연결은 현재 사용 가능하고 활성 상태 임), [3] (http://stackoverflow.com/questions/2753412/android-internet-connectivity-check-problem). 수색하고, 당신은받을 것이다. 그래도 전에 물어보십시오. ;-) –

+0

logcat 출력 코드가 추가되었습니다. –

답변

3

.

0

네트워크 연결을하기 전에 네트워크 연결을 사용할 수 있는지 여부를 확인. 네트워크 연결을 사용할 수있는 경우이 Detect Internet Connection

을 확인 , 가서 처리를하고 있지 당신이 Toast 메시지를 사용할 수 있는지 또는 AlertDialog 사용자에게 적절한 메시지를 표시 할 수 있습니다.

인터넷 연결을 사용할 수 없을 때 활동을 종료하려면 토스트 메시지를 표시하고 finish() 방법으로 전화하십시오. 이 같은 뭔가 :

if (noNetworkAvailable) { 
     Toast.makeText(getApplicationContext(), "No network available", 
       Toast.LENGTH_SHORT).show(); 
     finish(); 
    } 

참고 : 마무리() 메소드가 활동을 닫습니다 때문에, 대신에 AlertDialog의 사용 토스트 메시지가 발생할 것이기 때문에 "android.view.WindowLeaked"예외입니다.

0

매니페스트에서는 인터넷 권한을 추가해야합니다 : 아래의 기능은 장치가 네트워크에 연결할지 여부를 감지하는 데 사용됩니다

<uses-permission android:name="android.permission.INTERNET" /> 
관련 문제