2011-05-27 34 views
0

我希望能夠檢測用戶是否在我的Android應用程序中處於非活動狀態一段特定的時間,如果是這樣,我想開始一個新的活動,要求輸入密碼才能繼續使用該應用程序。以前的活動應該從離開的地方開始。如果用戶在Android應用程序中處於非活動狀態,則超時屏幕

這是可能的Android應用程序?我猜我應該在應用程序加載後立即從單獨的線程開始,這會不斷檢查用戶活動,但我該如何做。

回答

0

這是一個很難回答的問題,不知道你的應用程序的細節。

例如...應用程序有多少活動?這些活動做了什麼?哪些小部件(按鈕,列表視圖等)每個都有?

首先,爲了判斷一個用戶是否「活躍」,那麼你需要保留一個'上次使用'時間字段。但是,這樣做意味着要保留一個靜態的'long'變量(無論是在應用程序級別還是通過SharedPreferences持久保存,如果有多個Activity)。該變量將保持以毫秒爲單位的「上次使用」時間。

每次用戶與任何Activity進行交互時(觸摸,滾動,單擊按鈕等),您都需要更新它。這些交互需要不同的聽衆,每個聽衆都必須更新'上次使用'時間。除此之外,您需要每個偵聽器在用當前時間更新之前測試'上次使用'變量 - 如果它比5分鐘更早(或者任何超時),那麼他們需要將事件提交給強制彈出,要求用戶輸入密碼。

這都是可行的,但它很複雜。

或者,您可以簡單地設置一個倒數計時器,但您仍然需要每次觸摸,單擊或手勢來重置倒計時,並且仍然需要爲您的應用中的每個活動執行此操作。以上幾乎大部分都適用。

進一步描述您的應用可能會幫助某人提供更簡潔的答案。

+0

我正在尋找一個有幾個標籤,列表視圖,圖片庫等的應用程序。大多數功能將啓動其他活動,從手機內存中讀取數據,訪問Sql數據庫等等。可能是大約15-20個活動。我真的想知道android是否已經內置了類似這樣的東西,因爲這就是鎖屏所做的事情,我們可以以任何方式重用它嗎? – dlin 2011-05-27 04:14:21

相關問題