2012-03-15 2 views
0

나는 안드로이드에 대한 간단한 응용 프로그램을 만들고 있습니다. 내 응용 프로그램은 사용자가 선택한 내장 응용 프로그램을 열고 종료해야합니다.finish() 호출 후 표면보기가 비어 짐

예를 들어 사용자가 "설정"을 선택하면 기본 설정 응용 프로그램을 열고 응용 프로그램을 종료해야합니다. 나는 의도를 사용하여 첫 번째 작업을 수행 할 수있다. 하지만 "finish()"를 사용하여 응용 프로그램을 닫을 때. 프로세스가 백그라운드에서 계속 실행 중입니다. 메뉴에서 응용 프로그램을 다시 시작하면 표면 뷰가 비어 있습니다. Google을 통해

Intent intent = new Intent(Intent.ACTION_MAIN); 
intent.setClassName("com.android.settings","com.android.settings.Settings"); 
context.startActivity(intent); 
((Activity) context).finish(); 

, 난 출구에게 응용 프로그램을 강제로 코드를 찾았지만, 사방의 조언 응용 프로그램을 강제 종료 할 수 없습니다.

어디로 잘못 가고 있습니까? 왜 응용 프로그램을 다시 시작할 때 표면 뷰가 비어 있습니까?

+0

코드를 더 게시 할 수 있습니까? 당신은 활동에 있습니까? 그렇다면 (Activity) 컨텍스트없이 finish()를 호출 할 수 있어야합니다. – FoamyGuy

+0

아니요 표면 뷰 안에 있습니다. 나는 onpause에서 활동을 닫으려고했다. 하지만 여전히 활동이 닫히고 있지 않다. –

+0

public void onPause() { \t finish(); \t super.onPause(); } –

답변

0

onDestroy()를 사용하여 앱을 닫습니다.

+0

마무리가 모든 것을 표시하지 않는 이유는 다른 클래스의 일부 메모리를 다시 불러올 수있는 메모리가 너무 많을 수 있기 때문입니다. – sdfwer

+0

finish()는 이전 활동으로 돌아갑니다. 해당 활동에 누락 된 데이터가있는 경우 빈 화면이 나타납니다. – sdfwer

+0

onDestroy()가 액티비티에 포함되어야합니까? 어떻게 그 응용 프로그램을 닫으려면? 응용 프로그램이 배경 화면에서 실행되지 않아야합니다. –

관련 문제