2012-04-12 3 views
4

내 앱에 here 코드를 사용했습니다. '취소'옵션을 클릭하면 앱이 최소화됩니다. 홈 버튼을 길게 누르고 앱을 선택하면 앱이 동일하게 표시됩니다. 스플래시 화면이 아니거나 앱이 시작되는 일반적인 방식이 아닙니다. 따라서 홈 화면으로 이동하는 것으로 가정합니다. 나는 주된 활동을 완전히 닫을 수있는 방법을 찾고있다.전체 앱을 한 번에 종료

나는 다음과 같은 방법을 시도하고 그 때마다 추락 :

  1. finish();
  2. mainactivity.class.finish();
  3. 이 다른 활동에 systemexit()
  4. setresult()이있는 의도를 여는.
+0

당신은 우리에게 실행되는 코드를 보여줄 수 있을까요? 나는 당신이'finish()'를 호출하려고하는 곳을 의미하고 그것을 호출함으로써 얻은 에러는 무엇입니까? – WarrenFaith

+0

"finish()"가 실패하는 이유는 무엇입니까? –

+0

당신의 logcaterror는 무엇입니까? –

답변

10

가합니다 recommened하지하지만 여전히 당신은이를 사용할 수 있습니다. 앱을 종료해야하는 경우에 대비하여이 솔루션을 사용하는 것이 좋습니다.

내게 가장 좋은 해결책은 아래의 것처럼 앱의 모든 활동을 마무리하는 것입니다.

step1) mainactivity에서 정적 변수를 유지합니다.

public static boolean isQuit = false; 

step2) 버튼의 클릭 이벤트에서이 변수를 true로 설정하십시오.) 그리고 응용 프로그램의 모든 활동에

mainactivity.isQuit = true; 
    finish(); 

STEP3은 .. 아래 onrestart 방법이

@Override 
     protected void onRestart() { 
     // TODO Auto-generated method stub 
     super.onRestart(); 
     if(mainactivity.isQuit) 
      finish(); 
    } 
-3

u는 모든 실행 활동의 모든 스레드 AsyncTask를 죽일 수 있습니다

System.exit(0); 
+0

나는 gps와 인터넷을 사용하고 있으므로 배터리가 많이 소모됩니다. 위의 코드를 사용해 보았습니다. 그리고 그 배경에서 아직도 달리고있다. –

+0

무선 랜과 GPS는 배터리를 논스톱으로 배수합니다. 따라서이 두 가지 설정을 사용하지 않을 때 설정을 해제하는 것이 좋습니다. 프로그래밍 방식으로 GPS를 켜고 끌 수 있습니다. – user987760

+0

System.exit (0); did not는 당신을 위해 작동한다, 나는 당신이 당신의 활동을 (this.finish();) 그 다음 끝내야 한다을 추측한다 System.exit (0); 그것은 항상 나를 위해 작동 ... – user987760