Android 使用前臺服務
本篇文章還是在Android 活動和服務進行通訊的基礎上進行修改,服務幾乎都是在後臺執行的,一直以來它都是默默地做著辛苦的工作,但是服務的系統優先順序還是比較低的,當系統出現記憶體不足的情況下,就有可能會回收掉正在後臺執行的服務,如果你希望服務可以一直保持執行狀態,而不會由於系統記憶體不足的原因導致被回收,就可以考慮使用前臺服務,前臺服務和普通服務最大的區別就在於,它會一直有一個正在執行的圖示在系統的狀態列顯示,下拉狀態列可以看到更加詳細的資訊,非常類似於通知的效果,當然有時候你也可能不僅僅是為了防止服務被回收才使用前臺服務的,有些專案由於特殊的需求會要求必須使用前臺服務.
那麼我們就來看一下如何才能建立一個前臺服務吧,其實並不複雜,修改MyService中的程式碼,如下:
public class MyService extends Service { ... @Override public void onCreate() { super.onCreate(); Log.d(TAG, "onCreate: executed"); Intent intent = new Intent(this,MainActivity.class); PendingIntent pi = PendingIntent.getActivity(this,0,intent,0); Notification notification = new NotificationCompat.Builder(this) .setContentTitle("This is content title") .setContentText("This is content text") .setWhen(System.currentTimeMillis()) .setSmallIcon(R.mipmap.ic_launcher) .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher)) .setContentIntent(pi) .build(); startForeground(1,notification); } ... }可以看到,這裡只是修改了onCreate()方法中的程式碼,在構建出了Notification物件後,呼叫了startForeground()方法,這個方法接收兩個引數,第一個引數是通知的id,第二個引數則是構建出的Notification物件,呼叫startForeground()方法後就會讓MyService變成一個前臺服務,並在系統狀態列顯示出來.
現在重新執行一下程式,並點選Start Service或Bind Service按鈕,MyService就會以前臺服務的模式啟動了.並且在系統狀態列會顯示一個通知圖示,下拉狀態列後可以看到該通知的詳細內容,如圖:
前臺服務的用法就是這個簡單.
相關文章
- 高效管理 Android 前臺服務Android
- Android入門教程 | 四大元件之Service(前臺服務,後臺服務)Android元件
- 仿掘金前臺 vue 服務端渲染(ssr)後臺 react (spa) 後臺服務是 koa 的一個專案Vue服務端React
- Android SERVICE後臺服務程式的守護Android
- 在Android、iOS、Web多平臺使用AppGallery Connect效能管理服務AndroidiOSWebAPP
- Android服務端開發之使用Eclipse搭建Java Web服務端Android服務端EclipseJavaWeb
- Android中後臺的服務和多執行緒Android執行緒
- Android程式使用SOAP呼叫遠端WebService服務AndroidWeb
- Android Jetpack – 使用 WorkManager 管理後臺任務AndroidJetpack
- Android Jetpack - 使用 WorkManager 管理後臺任務AndroidJetpack
- 基於 golang 開發的短鏈服務(自帶前臺頁面)Golang
- 如何在SAP雲平臺上使用MongoDB服務MongoDB
- 教你使用rest雲服務介面,自己完成前後端開發REST後端
- Android8.0 後臺服務保活的一種思路Android
- 使用CRM系統前後企業客戶服務的區別
- 判斷當前應用程式處於前臺還是後臺 ANDROIDAndroid
- NeuChar 平臺使用及開發教程(四):使用 NeuChar 的素材服務
- Android Service 服務(一)—— ServiceAndroid
- SOA企業服務平臺
- dot net core使用BackgroundService執行一個後臺服務
- Linux任務的前後臺管理Linux
- 打造跨平臺.NET Core後臺服務
- NeuChar 平臺使用及開發教程(三):使用 NeuChar 的選單服務
- 如何使用Google服務Go
- Android推斷程式前後臺狀態Android
- Dubbo Mesh - 從服務框架到統一服務控制平臺框架
- 雲端計算服務模型,第 2 部分: 平臺即服務(PaaS)模型
- 高層次人才綜合服務平臺,人才一站式服務平臺搭建
- android模擬器無服務Android
- Android 啟動和停止服務Android
- Android Service 服務(二)—— BroadcastReceiverAndroidAST
- React服務端渲染(前後端路由同構)React服務端後端路由
- codis服務部署前的操作及初始化
- 使用dubbo+zookeeper釋出服務與呼叫服務
- 服務設計思考:平臺化
- Mac Redis 服務後臺執行MacRedis
- 服務治理平臺-註冊中心
- 部署一臺Zabbix Proxy代理服務