2010-01-25 43 views
15

我有一個應用程序與2個活動,LogonAct和MainAct。 LogonAct是一個登錄活動,我想強制用戶每次返回到應用程序時都要經歷一次。我已經在LogonAct上設置了android:clearTaskOnLaunch =「true」當用戶離開應用程序時,如何清除棧回到根活動?

當我第一次啓動該應用程序,我經過屏幕的這個序列,

Home -> LogonAct -> MainAct -> Home

我然後按照這個順序,

LogonAct -> Back -> MainAct

爲什麼把我帶回到MainAct ?自從LogonAct有之後,該活動是不是應該關閉android:clearTaskOnLaunch =「true」。當我點擊LogonAct的後退按鈕時,我預計會被帶回家。

從AndroidManifest.xml中的相關片段,

<activity android:name=".LogonAct" 
      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=".MainAct"> 
     <meta-data android:name="android.app.default_searchable" 
        android:value=".SearchResults" /> 
    </activity> 

我使用的是1.5。

任何幫助表示讚賞。

+0

您可以編輯您的問題,添加你的Manifest或者至少是LogonAct的元素,因爲這樣可以幫助人們發現是否有錯誤。 – 2010-01-25 09:25:45

+0

來自AndroidManifest.xml的片段包含Dave。我應該在問題中包括他們,但是我沒有面前的代碼。 – Adrian 2010-01-25 18:33:43

回答

11

android:clearTaskOnLaunch的文檔中提到,只要[活動]從主屏幕重新啓動,該屬性就適用「。

然而,在你的情況你按下首頁按鈕返回到主屏幕,而不是按後退按鈕。這意味着您的應用程序實際上並未重新啓動,因爲MainAct未「完成」。只有當你按返回(或者Android殺死任務以節省資源等)時纔會發生這種情況。

因爲你只需要在應用程序中的兩項活動,您可以爲MainActandroid:noHistory屬性,從而確保用戶永遠不能恢復到它,必須通過LogonAct

順便說一句,在用戶每次離開應用程序(例如,他們接到電話)時,強迫用戶重新登錄似乎有點令人討厭。
您可以在應用程序的永久性存儲中保留超時的會話令牌,或者使用服務保持網絡連接打開(如果這是您的應用程序的工作方式—),但這當然取決於您和您的要求。 :)

+1

感謝您的幫助克里斯托弗。 我還有一些活動可以在MainAct之後發佈,因此如果我在MainAct上使用android:noHistory,則當我選擇Back時,這些其他活動會回退到登錄屏幕。 我完全同意,每次登錄應用程序都不太理想。這是一個密碼管理器應用程序,所以我不想讓它訪問太久。我要嘗試做的是有一個定時器,它的工作方式與sudo類似,即如果密碼從最後一次輸入起超過x秒,就要求輸入密碼。 – Adrian 2010-01-25 19:48:48

+3

啊。在這種情況下,您可以在每個'Activity'的'onResume()'中添加一個快速方法調用,以檢查是否已經過了特定的時間段。如果是這樣,然後調用'finish()'並激發一個'Intent'將它們發送回'LogonAct'。 – 2010-01-25 19:54:53

15

你可以做到以下幾點:
1組clearTaskOnLaunch = 「真」 在AndroidManifest,在主要活動
2的聲明。在活動必須關閉:

@Override 
public void onBackPressed(){ 
    moveTaskToBack(true); 
} 

,所以如果用戶按下回 - 它回來到主屏幕 如果用戶再次啓動aplication - 任務堆棧清除,當他來到根主要活動

+0

謝謝muzhig您的描述幫助我很多。 – amity 2011-09-26 04:55:04

+0

感謝muzhig..it幫助我... – 2011-11-25 12:32:18

相關問題