2012-10-06 61 views
0

所以我有一個加載活動,需要加載每次用戶打開程序。我將加載活動作爲清單中的主要活動。如果加載活動成功,則啓動HomeActivity。如果我從HomeActivity中點擊後退按鈕,當我嘗試再次訪問應用程序時,它將觸發LoadingActivity。如果我從HomeActivity中點擊主頁按鈕,啓動它將返回到HomeActivity而不會轉到LoadingActivity。加載活動需要每次運行

我已經嘗試添加那些,clearTaskOnLaunch和FinishOnTaskLaunch。我試圖捕獲主頁按鈕,這是行不通的。我無法完成onPause或onStop,因爲我有HomeActivity啓動了一個在HomeActivity之上打開的活動,然後再回落到它。有什麼想法做什麼?繼承人清單,仍然學習Android清單的東西,所以不殺我。

<activity 
     android:name=".start.LoadingActivity" 
     android:screenOrientation="portrait" 
     android:clearTaskOnLaunch="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".HomeActivity" 
     android:label="@string/title_activity_home" 
     android:screenOrientation="nosensor" 
     > 
    </activity> 

回答

0

主頁按鈕默認功能是在不殺死活動的情況下進入主屏幕。 Android用戶希望在按回家按鈕後回到應用程序時查找他們所在的屏幕。所以我建議你改變你的設計。但是,如果你必須按照自己的方式去做,這裏有一個你可以使用的邏輯。

每次啓動主要活動時,都會在共享首選項中設置一個標誌,例如from_main = true。然後,在主要活動的onPause中,檢查from_main是否爲true。如果它是真的,則調用finish()。否則,不要做任何事情。

現在,當您從主要活動啓動另一個活動時,將共享首選項中的標誌from_main設置爲false。

通過這種方式,您現在可以在從main啓動其他活動或啓動它之後調用onPause。如果它在啓動之前,那麼它不會完成主要,你可以回落到它。如果它啓動後,它會完成主要活動。

+0

我有幾個應用程序可以做同樣的設計,因爲每次像我的一樣需要發生加載。謝謝你的想法。聽起來像是一個很好的想法來解決這個真正令人惱火的問題。 – slai47

相關問題