2013-05-30 2 views
2

, 내 응용 프로그램은 activityA 및 activityB, activityC이, activityA가 mainactivity입니다 :Android : 활동을 종료 한 후 대화 상자를 닫는 방법? 예를 들어

내 응용 프로그램은 파일 가져 오기 기능이 있습니다, 그래서 경우

가져 오기 파일, SDCARD에서 내 응용 프로그램으로 파일을 가져올 수 있습니다, activityC을 열 것입니다, 당신은 activityC에서 가져 오기 파일을 볼 수

코드 구성 :

<activity android:name=".ActivityA"> 

    <intent-filter> 
      <action android:name="android.intent.action.VIEW"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
      <data android:mimeType="application/pdf" /> 
      <data ...../> 
    </intent-filter> 
</activity> 

단계 : 오픈 activityB을하고 ---> 응용 프로그램을 누르 장치 홈 바닥 대화 상자가 튀어 --- > 오픈 파일 전자 관리자 응용 프로그램 및 지원 파일을 탭 지원 목록 대화 상자에서 ----> 애플 리케이션이 열리면, 나는 ActivityC에서 가져 오기 파일을 볼 수 있지만 activityB에서 팝업되는 대화 상자를 볼 수도 있습니다.

파일을 가져올 때 대화 상자를 닫고 싶습니다. 어떻게해야합니까?

+0

에 대한 일시 정지 상태 사용중인 응용 프로그램이 코드는 당신이 당신의 현재 활동이 일시 정지 된 홈 버튼을 누르면 당신은 홈 화면으로 이동하면 대화 상자가 표시되고 있는지

확인합니다. 귀국 할 때 활동이 재개됩니다. 나는 위에서 언급 한 단계에 대해 혼란스러워합니다. 그게 분명하지 않습니다 – Raghunandan

+1

어떤 컨텍스트를 대화 상자에 사용합니까 – anddevmanu

+0

간단히 말하자면, 파일을 바꾸지 않으면 돌아 왔을 때 activityB가 destory가되고 activityA가 생성되면 대화 상자 (activityB가 팝업 됨)가 표시됩니다 activityA 이상. 이것은 내 원하는 것이 아닙니다. – user2434891

답변

0

홈 버튼을 누르면 대화 상자를 닫으십시오. dialog.cancel()을 호출하여 대화 상자를 닫을 수 있습니다. home button을 누르면 활동이 일시 중지 상태로 이동하므로 onPause() function의 대화 상자를 취소 할 수 있습니다. 그

//in on pause() 
if(dialog.isShowing()){ 
    boolean dialogCanceld=true; 
    dialog.cancel(); 
} 
//in onResume 
    if(dialagCanceld){ 
    //show your dialog 
    } 
+0

파일을 가져올 수없는 경우 (예 : 홈 버튼을 길게 누르면 되돌림) 대화 상자가 정상적으로 표시됩니다. 이런 식으로 onPause() 함수에서 대화 상자를 취소하고 파일을 가져올 수 없으면 onResume() 함수에서 대화 상자를 표시 할 수 있습니까? – user2434891

관련 문제