2011-10-01 58 views
0

我正在編寫一個定位服務程序,當用戶離開預定義區域時,應用程序將在任務欄創建一個通知。我受到系統自動殺死我的應用程序活動的困擾。 按下主頁按鈕隱藏應用後,一小時後系統自動殺死應用活動。問題是用戶無法通過系統殺死活動後得到任何通知。 注意:我的GPS代碼位於活動類中,未創建線程。閒置時被系統殺死的活動

使用Service可以解決問題嗎?這個服務是否有可能被系統殺死?

回答

1

當然,創建一個服務,把你的代碼中有,請確保它不是太昂貴(電池豬等)和應做的工作AndroidBegginer - 我喜歡一個

+0

大聲笑,謝謝serkan。我正在編寫我的第一個Android應用程序。我希望系統不會自動殺死我的服務 –

1

我痛苦的用戶名好從系統自動殺死我的應用程序活動。按Home按鈕隱藏應用程序後,應用程序活動在一小時後自動被系統殺死。

當然。這是正常的行爲。 Android正在收回內存,以便能夠運行其他東西。這與一個瀏覽器應用程序沒有什麼不同,它可以釋放與一小時前下載的網頁相關聯的內存,以便有更多內存供下載未來網頁。

有沒有可能通過使用服務解決問題?

是的,服務可以獨立於活動運行。

服務是否有可能被系統殺死?

是的,Android會在一段時間後關閉你的服務。更重要的是,用戶會在一段時間後通過任務殺手或設置應用程序中的管理服務屏幕關閉服務。您的服務需要死亡,因爲如果沒有,用戶的整個手機將會死亡,因爲它將耗盡電池壽命。全球定位系統是一個顯着的電池消耗 - 手機將只能運行幾個小時,然後纔會停止充電。

我正在編寫一個位置服務編程,當用戶離開預定義區域時,應用程序將在任務欄創建一個通知。

這是很有可能寫的。編寫好之後會有些困難,這種方式可以提供這種功能,同時不會導致電池消耗過多。

+0

還有一個問題。在我的情況下,操作系統在殺死活動或服務時會調用onDestroy方法嗎? –

+0

@Android初學者:'onDestroy(*)* *可能會被調用,但不能保證。 – CommonsWare

+0

我是使用服務的新手。如果我通過'startService'創建服務,是否可以在服務中調用方法。我知道如果我通過'bindService'創建服務,可以調用Service中的方法。 –

相關問題