2014-02-18 2 views
0

Intent을 해결할 때 다음과 같은 논리가 있습니다. 불행하게도 홈 버튼을 클릭하여이 코드를 호출하면 백 프레스처럼 작동합니다.실행 프로그램의 의도가 뒤로 버튼처럼 동작합니다.

if (parentIntent == null) { 
     parentIntent = activity.getPackageManager().getLaunchIntentForPackage(activity.getPackageName()); 
    } 

    NavUtils.navigateUpTo(activity, parentIntent); 

다음 코드는하지만 작업을 수행합니다

if (parentIntent == null) { 
     activity.startActivity(
       activity.getPackageManager() 
         .getLaunchIntentForPackage(
           activity.getPackageName()) 
         .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)); 
     activity.finish(); 
    } else { 
     NavUtils.navigateUpTo(activity, parentIntent); 
    } 

누구나이 같은 이유 NavUtils없이 행동을 알아?

답변

0

문서를 인용 :

NavUtils.navigateUpTo(Activity sourceActivity, Intent upIntent); 

이동 sourceActivity의 과정에서 sourceActivity을 마무리 upIntent에 의해 지정된 활동에.

그렇습니다. NavUtils.navigateUpTo는 뒤로 버튼 누름과 같은 동작을하고, 홈 버튼 클릭 리스너에서 첫 번째 코드를 호출하면 이전 활동으로 되돌아갑니다.

+0

하지만 upIntent에 의해 지정된 활동이 호출되지 않습니다 ... – pixel

+0

문서에서 아직 : "대상과 동일한 작업 내에서 탐색을 수행 할 때이 메서드를 사용해야합니다. 어떤 경우에는 shouldUpRecreateTask (Activity, Intent)를 참조하십시오. ". 그래서 parentIntent는 다른 작업을 수행합니까? –

관련 문제