2014-02-18 13 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由upIntent指定的活動,在此過程完成sourceActivity。

所以,是的,NavUtils.navigateUpTo就像一個後退按鈕按下,如果你調用從主屏幕按鈕,點擊收聽的第一塊代碼,你將被帶回以前的活動。

+0

但問題在於,不調用upIntent指定的活動... – pixel

+0

仍然從文檔:「在與目標相同的任務中執行導航時應使用此方法。如果向上導航應跨越有些情況下,請參閱shouldUpRecreateTask(Activity,Intent)。「。所以可能parentIntent是一個不同的任務? –