2012-09-24 3 views
-1

내 앱에서 메뉴 버튼을 클릭하면 원격 서버의 데이터와 이미지를 사용자 정의 목록보기로로드하는 활동으로 이동합니다. 문제는 WiFi가 꺼져있는 경우 두 번째 활동에서 충돌이 발생한다는 것입니다. try catch 블록에 코드를 넣고 catch 섹션에서 null로 어댑터를 설정했습니다. 버튼을 클릭하면 작업이 수행되고 Wi-Fi가 꺼지면 어댑터 활동이 catch = null로 설정됩니다. 목록보기와 함께 표시 할 수 있습니다. 어떻게하면 충돌을 일으키지 않고 메뉴 화면에 머무를 수 있을까요? 어떤 생각?강제로 활동을 계속하는 법 앱을 닫는 법

 Intent mainIntent = new Intent(SplashScreenActivity.this, GiftListActivity.class); 
     SplashScreenActivity.this.startActivity(mainIntent); 

이것은 두 번째 활동에 대한 나의 호출입니다.

try{ 
    adapter = new GiftJewelryListAdapter(GiftListActivity.this, giftlist); 
    itemsListView.setAdapter(adapter); 
} 
catch(Exception e){ 
    adapter=null; 
    MyAlertDialog.ShowAlertDialog(GiftJewelryListActivity.this, "", "Check Network Connection", "OK"); 
} 

"네트워크 연결 확인"메시지를 표시 한 후에 내가 전화 한 활동에 머물고 싶습니다. 여기서 어떤 변경을해야합니까?

답변

2

새 활동을 호출 한 활동에서 네트워크 가용성을 확인할 수 있습니다. 네트워크가 사용 가능한 경우 새 작업을 시작할 수 있습니다.

아래 기능은 장치가 네트워크에 연결되어 있는지 여부를 감지하는 데 사용됩니다.

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

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

if(!isNetworkAvailable(context)) 
    MyAlertDialog.ShowAlertDialog(GiftJewelryListActivity.this, "", "Check Network Connection", "OK") 
else{ 
    Intent mainIntent = new Intent(SplashScreenActivity.this, GiftListActivity.class); 
    SplashScreenActivity.this.startActivity(mainIntent); 
} 

망가 Manifest.XMl에 권한을 추가하는 것을 잊지.

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

난 당신이 중괄호의 마지막 두 문장을 포장한다고 생각

+0

.. 희망이 도움이. – Leeeeeeelo

+0

예. 고마워요 @ Leeeeelo :) –

+0

당신을 환영합니다! 하나는 또한 안드로이드 매니페스트에 다음과 같은 권한을 추가해야합니다 Leeeeeeelo

1

try catch 블록을 사용하는 대신 두 번째 활동을 호출하기 전에 wifi 연결을 사용할 수 있는지 확인하십시오. 연결이 가능한 경우에만 두 번째 활동을 호출하십시오. 이렇게하면 현재 활동에 머물 수 있습니다. 인터넷 연결 확인에 대해 설명하는 See this link.

1

DialogInterface.OnClickListener을 정의하여 사용자가 YourActivity.this.finish()으로 전화하여 이전 작업으로 돌아갈 때 경고 대화 상자의 확인 버튼을 눌렀을 때를 감지하는 것도 한 가지 방법입니다.