2012-09-14 45 views
2

我正在創建一個應用程序,該程序會在用戶按下按鈕時將當前時間(有些延遲,例如2小時)保存在文件中。後來,應用程序將檢查時間是否已經過去,並做一些東西...設備關閉時運行的Android時鐘

所以...我點擊應用程序中的按鈕(時間獲取保存在文件中)...我退出應用程序...關閉 - down電話......我在1小時後打開它,回到應用程序......並且我仍然必須等待1小時,直到應用程序讓我做「某事」...

問題:

是否有一個用戶無法更改的時鐘,並在設備關閉時保持運行?我目前使用SystemClock.elapsedRealtime(),這很好,因爲即使用戶更改設置中的時間,elapsedRealtime也保持不變。問題是如果設備被關閉,因爲在每次啓動時elapsedRealtime以0開頭。

我無法使用服務器時間,因爲應用程序不會連接到Internet。

如果沒有這樣的時鐘,請給我建議另一種解決方案。

回答

1

實際上,你沒有機會得到「關閉」硬件時鐘數據。硬件時鐘只是在新手機的舊手機,我認爲沒有人需要它,所以他們不建立在硬件。在舊手機中有「硬件」時鐘,但在新設備中並不像我想的那樣。我確實讀過一些關於谷歌想要製作一些框架或實施它的內容。但是沒有報警能夠以關閉模式啓動。

所以我很抱歉,但我認爲它現在是不可能的..

0

您顯然需要將數據保存到非易失性存儲器。當您的應用被Android暫停/銷燬時,您應該將其視爲威脅並將時間值保存到磁盤,然後當您的應用再次啓動時,您的應用應該讀取之前已寫入的數據並繼續運行它通常會。

當談到好質疑如何:

最簡單的解決方案是使用SharedPreferences

更復雜和更靈活的是SQLite數據庫,

在Android上存儲更多的數據我會建議:Storage Options

+0

你沒有得到我的問題。我已經照顧了存儲數據(我在文件中使用內部存儲)。我的問題是系統時鐘在設備關閉時不停止。 – tomziwar

0

你可以存儲你的時間在數據庫中作爲一個DateTime值,顯示年份天小時二毫秒,那麼你可以請求在啓動時啓動服務並讀取該數據,從而創建在剩餘時間內觸發的警報。我會給你一個代碼示例,但我並不擅長java編程,所以它可能沒用,反正goodluck並嘗試實現這一點。

相關問題