2012-06-20 7 views
0

신청서에는 2 번의 활동이 있습니다. 각 응용 프로그램에서 다음 코드를 사용하여 응용 프로그램을 완전히 닫고 홈 단추를 누르면 모든 리소스가 해제됩니다. 하지만 앱을 다시 시작하면 이전에 남은 활동에서 시작됩니다. 어떻게 목표를 달성 할 수 있습니다.신청서를 완전히 닫는 방법

@Override 
public void onStop(){ 
    super.onStop(); 
    super.onDestroy(); 
} 
+0

finish()로 충분합니다. – user370305

+0

http://stackoverflow.com/questions/2033914/quitting-an-application-is-that-frowned-upon/2034238#2034238 – Akram

+0

[희망 사항] (http://stackoverflow.com/a/11081342)/940096) – Praveenkumar

답변

1

필요에 따라 응용 프로그램을 닫을 수 없습니다. 다른 곳으로 이동할 때 Activityfinish()으로 전화 할 수 있습니다. 그러나 다시 한번 OS가 리소스를 즉시 해제하고 Activity을 종료한다는 보장은 없습니다.

응용 프로그램을 종료하는 것과 같은 것을 구현하려고 시도하지 마십시오. Read this for a good discussion on it.

0

마침 모든 활동과 성 활동을 마무리하기 전에 그냥 응용 프로그램 시작 프로세스를 종료합니다 아래 라인

android.os.Process.killProcess(android.os.Process.myPid()); 

를 추가합니다.

+0

이것이 작동한다는 보장이 없습니다. –

+0

나는 그것을 시험해 보았고 & 나를 위해 잘 작동하고있다. – Sumant

+0

안드로이드 문서를 읽으십시오. 그것은 말합니다 : _이 API는 우리가 PID에 기반한 프로세스를 죽이기를 요청할 수는 있지만 실제로 커널이 실제로 죽일 수있는 PID에 대한 표준 제한을 부과합니다. 일반적으로 이는 호출자의 패키지/응용 프로그램을 실행하는 프로세스와 해당 응용 프로그램에서 생성 된 추가 프로세스를 의미합니다. 공통 UID를 공유하는 패키지는 서로의 프로세스를 죽일 수 있습니다 ._ –

1
  1. 응용 프로그램을 완전히 닫지 마십시오. 시스템 자체가 결정하게하십시오.
  2. onStop 방법으로 super.onDestroy()으로 전화하지 마세요.
  3. 활동 중지를 위해 finish()을 사용하십시오.
  4. 당신은 항상 대신의 System.exit()
+0

+1은'System.exit()'를 제외하고는 +1합니다. 그것을 제안하지 마십시오. –

+1

왜'System.exit'을 좋아하니? – Jin35

+1

어딘가에서'System.exit()'가 안드로이드 애플 리케이션을 위해 제안해서는 안되는 것을 읽었습니다. –

0

전화 finish()을 가지고 있고 당신은 주요 활동 자체에서 응용 프로그램을 종료해야합니다.
어떤 활동에서 홈 버튼을 누르면 다음 번에 같은 활동이 시작됩니다.

또는 더 나은 해결책을 위해 질문에 세부 정보를 추가하십시오.