2013-04-17 4 views
-2

사실, 저는 Android App Development가 처음입니다. 내 신청서에는 몇 가지 활동이 있으며 사용자에게 퇴장 옵션 메뉴를 제공하여 신청서를 종료 할 수 있습니다. 그러나 문제가 있습니다. exit 버튼을 누르면 응용 프로그램을 종료 할 수 있지만 두 번째 응용 프로그램에 들어가면 마지막으로 중단 한 페이지가 시작됩니다. 다음은 내 코드를 제공 :활동을 파괴하는 방법

@Override 
public boolean onMenuItemSelected(int featureId, MenuItem item) { 
    switch (item.getItemId()) { 
     case 0 : 
      Intent intent = new Intent(Intent.ACTION_MAIN); 
      intent.addCategory(Intent.CATEGORY_HOME); 
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      startActivity(intent); 
      finish(); 
      Toast.makeText(this, "Goodbye Dear", Toast.LENGTH_LONG).show(); 
      break; 
+5

"사용자에게 종료 옵션 메뉴를 제공하여 애플리케이션을 종료 할 수 있습니다."- 그렇게하지 마십시오. http://stackoverflow.com/questions/2033914/quitting-an-application-is-that-frowned-upon/2034238#2034238 – CommonsWare

+0

A 및 B 액티비티 예제를 더 제공하십시오. – stinepike

+0

CommomnsWare에서 이미 말했습니다. "출구"는 거의 항상 악합니다. – Simon

답변

0

당신은 onPause 및/또는 활동 내부들의 OnDestroy 방법을 무시하고 이러한 방법에서보기를 삭제해야합니다.

+0

아니요, 일반적으로보기를 삭제하지 않습니다. 여기서 문제는 활동 간의 흐름입니다. –

0

finish() 대신에 System.exit(0);을 사용하십시오.

+0

아니요. 안드로이드의 디자인과 상당히 상충되는 부분입니다. 안드로이드의 아이디어에 영향을 미치지 않으므로 원하는 목표를 달성하지 못할 수도 있습니다. –

0

코드의 문제는 Intent.FLAG_ACTIVITY_NEW_TASK이 현재 작업을 제거하지 않는다는 것입니다. 여기에 대한 자세한 내용은 Task and Back Stack | Android Developers을 참조하십시오.

Intent.FLAG_ACTIVITY_CLEAR_TOP을 사용해보세요. 문서에서 우리는 이것이 원하는 행동을한다는 ​​것을 알 수 있습니다. 설정하고 시작되는 활동이 이미 설정된 현재 작업에서 실행하는 대신 그 활동의 새로운 인스턴스를 실행하는 경우

, 그 위에 다른 모든 활동이 종료됩니다 및 이 의도는 새로운 의도로 (이제 상단에있는) 이전 활동으로 전달됩니다.