2012-01-31 4 views
3

나는 android에 익숙하며 java.ui는 9 개의 활동 (화면)을 만들었으며 각각 다음 단추로 이동하여 다음 화면으로 이동하고 9 번째 화면에는 응용 프로그램을 닫는 종료 단추가 있습니다 하지만 finish() 또는 android.os.process.killProcess API를 호출하면 이전 화면으로 이동하지만 전체 애플리케이션을 닫지는 않습니다.android에서 응용 프로그램을 닫을 수 없습니다

전체 애플리케이션을 닫으려면 코드 스 니펫을 제공해주십시오. 주요 활동에

+0

안드로이드의 디자인을 선택하여 응용 프로그램을 종료 선호하지만, 오히려 OS하여 관리되지 않습니다. 해당 인 텐트로 홈 애플리케이션을 불러올 수 있습니다. Intent intent = new Intent (Intent.ACTION_MAIN); intent.addCategory (Intent.CATEGORY_HOME); int.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK); startActivity (의도); – nik431

+0

AndroidManifest.xml 파일에서 이것을 구현할 수도 있습니다. 단지 에 android : noHistory = "true"속성을 추가하면 이전 활동으로 돌아가고 싶지 않습니다. – nik431

+0

여기에 대한 귀하의 출구에이 코드를 사용할 수 있습니다 onClick() moveTaskToBack (true); 그러나 그 때 응용 프로그램을 다시 시작하면 마지막 활동이 화면에 표시됩니다. – Rishi

답변

0

:

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

Android가 불확실한 상태로 남을 수 있으므로 권장하지 않습니다. – CommonsWare

2

새 활동을 시작하기 전에 finish()에게 다음 이전 활동에 다시 모든 활동을 제공하지 않으려면.

Intent intent = new Intent(this, Second.class); 
startActivity(intent); 
finish(); 

두 번째 옵션은 다시 onActivityResult() 이전의 모든 활동에 finish()에 대한 호출을 수행하는 마지막 작업의 모든 활동에 startActivityForResult()setResult()을 사용하는 것입니다.

int AnyNumber = 123; 
Intent intent = new Intent(this, Second.class); 
startActivityForResult(intent, AnyNumber); 

재정 onActivityResult()

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

     if(requestCode == MyRequestCode){ 
      if(resultCode == Activity.RESULT_OK){ 
       finish(); 
      } 
     } 
    } 

는 결과를 설정 모든 활동과 9 활동에서이 작업을 수행

setResult(Activity.RESULT_OK); 

이 다시 전화하고 모든 활동이에 따라 완료됩니다 requestCode.

+0

이것은 더 좋은 방법은 아니며 정확한 해결책이 아니라고 말할 수 있습니다. –

관련 문제