如何讓Android service程序變成前臺程序
阿新 • • 發佈:2019-02-13
Android的前臺Service
Service幾乎都是在後臺執行的,一直以來它都是默默地做著辛苦的工作。但是Service的系統優先順序還是比較低的,當系統出現記憶體不足情況時,就有可能會回收掉正在後臺執行的Service。如果你希望Service可以一直保持執行狀態,而不會由於系統記憶體不足的原因導致被回收,就可以考慮使用前臺Service
前臺Service和普通Service最大的區別就在於,它會一直有一個正在執行的圖示在系統的狀態列顯示,下拉狀態列後可以看到更加詳細的資訊,非常類似於通知的效果。當然有時候你也可能不僅僅是為了防止Service被回收才使用前臺Service,有些專案由於特殊的需求會要求必須使用前臺Service,比如說墨跡天氣,它的Service在後臺更新天氣資料的同時,還會在系統狀態列一直顯示當前天氣的資訊,如下圖所示:
那麼我們就來看一下如何才能建立一個前臺Service吧,其實並不複雜,如下所示:
這裡只是修改了Service中onCreate()方法的程式碼。可以看到,我們首先建立了一個Notification物件,然後呼叫了它的setLatestEventInfo()方法來為通知初始化佈局和資料,並在這裡設定了點選通知後就開啟MainActivity。然後呼叫startForeground()方法就可以讓MyService變成一個前臺Service,並會將通知的圖片顯示出來。
現在重新執行一下程式, Service就會以前臺Service的模式啟動了,並且在系統狀態列會彈出一個通欄圖示,下拉狀態列後可以看到通知的詳細內容,如下圖所示:
更多安卓技巧,安卓開發訣竅,歡迎關注南京寶雲教育,我們會每天推送實用的開發技能資料和培訓優惠新聞。
Service幾乎都是在後臺執行的,一直以來它都是默默地做著辛苦的工作。但是Service的系統優先順序還是比較低的,當系統出現記憶體不足情況時,就有可能會回收掉正在後臺執行的Service。如果你希望Service可以一直保持執行狀態,而不會由於系統記憶體不足的原因導致被回收,就可以考慮使用前臺Service
前臺Service和普通Service最大的區別就在於,它會一直有一個正在執行的圖示在系統的狀態列顯示,下拉狀態列後可以看到更加詳細的資訊,非常類似於通知的效果。當然有時候你也可能不僅僅是為了防止Service被回收才使用前臺Service,有些專案由於特殊的需求會要求必須使用前臺Service,比如說墨跡天氣,它的Service在後臺更新天氣資料的同時,還會在系統狀態列一直顯示當前天氣的資訊,如下圖所示:
那麼我們就來看一下如何才能建立一個前臺Service吧,其實並不複雜,如下所示:
這裡只是修改了Service中onCreate()方法的程式碼。可以看到,我們首先建立了一個Notification物件,然後呼叫了它的setLatestEventInfo()方法來為通知初始化佈局和資料,並在這裡設定了點選通知後就開啟MainActivity。然後呼叫startForeground()方法就可以讓MyService變成一個前臺Service,並會將通知的圖片顯示出來。
現在重新執行一下程式, Service就會以前臺Service的模式啟動了,並且在系統狀態列會彈出一個通欄圖示,下拉狀態列後可以看到通知的詳細內容,如下圖所示:
更多安卓技巧,安卓開發訣竅,歡迎關注南京寶雲教育,我們會每天推送實用的開發技能資料和培訓優惠新聞。