2014-09-08 7 views
0

내 onStart에 ProgressDialog를 만든 다음 나중에 비동기 작업이 반환 된 후 숨기거나 닫습니다.onStop >> onStart 이후에 ProgressDialog에 대한 참조가 잘못되는 이유는 무엇입니까?

homescreen으로 돌아가서 돌아갈 때 변수에 새 ProgressDialog를 다시 인스턴스화하면 나중에 코드에서 ProgressDialog를 마지막으로 설정 한 이전 메모리 주소를 계속 참조합니다.

나는 다양한 접근법을 시도했지만 난처한 편이다. ProgressDialog가 앱을 처음 시작한 후에 제대로 작동하지 않는 것 같습니다. 누군가이 문제를 해결하는 방법을 안내하거나 다른 접근법을 제안 할 수 있습니까?

감사합니다.

편집 : 내가 처음에 설정 한 동일한 변수를 사용하여 다시 시도했지만, 숨기기/해제하지 않았다는 것을 언급해야합니다. 나중에 내 updateMap()

mProgressDialog.dismiss(); // Or hide() 

이 잘 첫 번째 실행 작동에 다음 ONSTART에서

()

mProgressDialog = new ProgressDialog(this); 
mProgressDialog.show(); 

. 그러나 활동이 중지되었다가 다시 시작되면 두 번째 블록이 예상대로 실행되지 않습니다.

EDIT 2

private ProgressDialog mProgressDialog; 

에서 onCreate()

mProgressDialog = new ProgressDialog(this); 

onResume()

mProgressDialog.show(); 

updateMap()

mProgressDialog.hide(); 

첫 번째 실행이 작동하지만 홈 화면으로 돌아가서 뒤로 이동하면 ProgressDialog가 숨겨지지 않습니다. 무슨 일이야?!

+0

가지고 계신 것을 게시 할 수 있습니까? – RyPope

+0

내 게시물이 업데이트되었습니다! – Phiat

+0

돌아갈 때 updateMap()이 다시 호출 되셨습니까? 전체 수업을 게시 할 수 있습니까? – DejanRistic

답변

1

ProgressDialog 변수를 static으로 설정해보십시오. 활동이 다시 작성되면 클래스의 새 인스턴스에 새 활동이 아닌 해당 활동 클래스에 첨부 된 동일한 ProgressDialog를 참조해야합니다.

+0

정말 고마워요! 이것은 완벽하게 작동했고 내 문제에 대해 의미가 있습니다. – Phiat