2011-03-27 82 views
11

什麼是當一個Android「應用程序」已經從主屏幕/歷史畫面展開檢測的最佳方式?Android的 - 從家庭或歷史檢測應用程序啓動

基本上,我試圖實現的是強制用戶登錄到某些屏幕,每次他們回到應用程序(即他們有完全訪問所有活動登錄後,但基本上我希望他們重新 - 當他們通過主屏幕上的啓動回到應用程序時驗證身份)。

我才知道類似的問題已經被問(即如何登錄一個應用程序的啓動) - 但沒有,我已經看到了尚未能解決我的問題。所有的想法歡迎...

回答

14

什麼是最好的方式來檢測何時從主屏幕/歷史屏幕啓動Android「應用程序」?

你不能,據我所知。

基本上,我想要做到的,是強制用戶每次他們回來到應用時,登錄到特定的屏幕(即他們爲所有活動完全訪問一次登錄,但基本上我希望他們當他們通過主屏幕上的啓動回到應用程序時重新進行身份驗證)。

請使用一個明智的,人性化的登錄系統。例如,如果您覺得他們的登錄憑據基於時間過期,則強制他們再次登錄。您可以通過檢查onCreate()中的憑據來完成此操作,如果它們已過期,請致電startActivity()啓動您的登錄活動(或彈出您的登錄對話框,或者任何您登錄它們的方法)。

當然,更好的方法是完全跳過登錄。除非這是一個「密碼安全」,銀行應用程序或其他需要高於平均水平的安全性的東西,否則您不需要它們登錄,如果用戶覺得您的登錄需求是不必要的,那麼您的用戶會感到惱火。大多數移動應用程序不需要認證。

強制基於他們如何達到活性的登錄是用戶敵意。你告訴用戶,除了你的應用程序之外,他們使用他們的手機用於他們是二等公民。

+1

感謝您的迴應 - 不幸的是,這是一個客戶端,它需要相當高的安全級別(數據非常敏感)。我不認爲我的搜索有一種方法,基於時間的會話正是我前往的地方。 – Codz 2011-03-27 18:51:44

+2

又一次的客戶用splash> _ <毀了這一天,需要找到解決方法。 – Warpzit 2014-06-05 09:36:21

+0

您可以在活動暫停時關閉會話,打開一個標誌關閉活動,並在暫停時關閉活動。 – pojomx 2015-02-27 16:35:02

0

嘗試看看其中有一個精心設計的解決方案「OI安全」應用程序(我不知道如果代碼是精心設計過,但是,你將看到:P)

2

只需創建一個不具有內容視圖和樹樁活動啓動應用等活動開始

如把下列的onCreate:

Class<?> myclass; 

if(isTimeForActivity1){ 
    myclass = Activity1.class; 
}else if(isTimeForActivity2){ 
    myclass = Activity2.class; 
} 

startActivity(new Intent(this, myclass)); 
finish(); 
12

什麼

if((getIntent().getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY)!=0) { 
     Log.d(TAG, "Called from history"); 
    } 

? 這使用了一個simple Intent flag

+0

有人可能會對此答案的有效性發表評論嗎?對於其他更有經驗的Android開發人員來說,這比其他人有意義嗎? – marienke 2013-11-29 12:23:54

+1

您可以簡單地對其進行測試 - 適用於我們的所有設備。如果沒有,請通知我。 – bk138 2013-12-03 09:55:32

+1

這對我不起作用。 – 2015-02-27 12:46:46

相關問題