日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Android通知欄前臺服務的實現(xiàn)

瀏覽:38日期:2022-09-25 09:15:14

一、前臺服務的簡單介紹

前臺服務是那些被認為用戶知道且在系統(tǒng)內(nèi)存不足的時候不允許系統(tǒng)殺死的服務。前臺服務必須給狀態(tài)欄提供一個通知,它被放到正在運行(Ongoing)標題之下——這就意味著通知只有在這個服務被終止或從前臺主動移除通知后才能被解除。

最常見的表現(xiàn)形式就是音樂播放服務,應用程序后臺運行時,用戶可以通過通知欄,知道當前播放內(nèi)容,并進行暫停、繼續(xù)、切歌等相關(guān)操作。

二、為什么使用前臺服務

后臺運行的Service系統(tǒng)優(yōu)先級相對較低,當系統(tǒng)內(nèi)存不足時,在后臺運行的Service就有可能被回收,為了保持后臺服務的正常運行及相關(guān)操作,可以選擇將需要保持運行的Service設置為前臺服務,從而使APP長時間處于后臺或者關(guān)閉(進程未被清理)時,服務能夠保持工作。

三、前臺服務的詳細使用

創(chuàng)建服務內(nèi)容,如下(四大組件不要忘記清單文件進行注冊,否則啟動會找不到服務);

public class ForegroundService extends Service { private static final String TAG = ForegroundService.class.getSimpleName(); @Override public void onCreate() { super.onCreate(); Log.e(TAG, 'onCreate'); } @Nullable @Override public IBinder onBind(Intent intent) { Log.e(TAG, 'onBind'); return null; } @Override public int onStartCommand(Intent intent, int flags, int startId) { Log.e(TAG, 'onStartCommand'); return super.onStartCommand(intent, flags, startId); } @Override public void onDestroy() { Log.e(TAG, 'onDestroy'); super.onDestroy(); } }

創(chuàng)建服務通知內(nèi)容,例如音樂播放,藍牙設備正在連接等:

/** * 創(chuàng)建服務通知 */private Notification createForegroundNotification() { NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); // 唯一的通知通道的id. String notificationChannelId = 'notification_channel_id_01'; // Android8.0以上的系統(tǒng),新建消息通道 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { //用戶可見的通道名稱 String channelName = 'Foreground Service Notification'; //通道的重要程度 int importance = NotificationManager.IMPORTANCE_HIGH; NotificationChannel notificationChannel = new NotificationChannel(notificationChannelId, channelName, importance); notificationChannel.setDescription('Channel description'); //LED燈 notificationChannel.enableLights(true); notificationChannel.setLightColor(Color.RED); //震動 notificationChannel.setVibrationPattern(new long[]{0, 1000, 500, 1000}); notificationChannel.enableVibration(true); if (notificationManager != null) { notificationManager.createNotificationChannel(notificationChannel); } } NotificationCompat.Builder builder = new NotificationCompat.Builder(this, notificationChannelId); //通知小圖標 builder.setSmallIcon(R.drawable.ic_launcher); //通知標題 builder.setContentTitle('ContentTitle'); //通知內(nèi)容 builder.setContentText('ContentText'); //設定通知顯示的時間 builder.setWhen(System.currentTimeMillis()); //設定啟動的內(nèi)容 Intent activityIntent = new Intent(this, NotificationActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 1, activityIntent, PendingIntent.FLAG_UPDATE_CURRENT); builder.setContentIntent(pendingIntent); //創(chuàng)建通知并返回 return builder.build();}

啟動服務時,創(chuàng)建通知:

@Overridepublic void onCreate() { super.onCreate(); Log.e(TAG, 'onCreate'); // 獲取服務通知 Notification notification = createForegroundNotification(); //將服務置于啟動狀態(tài) ,NOTIFICATION_ID指的是創(chuàng)建的通知的ID startForeground(NOTIFICATION_ID, notification);}

停止服務時,移除通知:

@Overridepublic void onDestroy() { Log.e(TAG, 'onDestroy'); // 標記服務關(guān)閉 ForegroundService.serviceIsLive = false; // 移除通知 stopForeground(true); super.onDestroy();}

判斷服務是否啟動及獲取傳遞信息:

@Overridepublic int onStartCommand(Intent intent, int flags, int startId) { Log.e(TAG, 'onStartCommand'); // 標記服務啟動 ForegroundService.serviceIsLive = true; // 數(shù)據(jù)獲取 String data = intent.getStringExtra('Foreground'); Toast.makeText(this, data, Toast.LENGTH_SHORT).show(); return super.onStartCommand(intent, flags, startId);}

以上就是前臺服務的創(chuàng)建過程,相關(guān)注釋已經(jīng)很明白了,具體使用可以查看文末的Demo。

服務創(chuàng)建完畢,接下來就可以進行服務的啟動了,啟動前不要忘記在清單文件中進行前臺服務權(quán)限的添加:

<uses-permission android:name='android.permission.FOREGROUND_SERVICE' />

服務的啟動和停止

//啟動服務if (!ForegroundService.serviceIsLive) { // Android 8.0使用startForegroundService在前臺啟動新服務 mForegroundService = new Intent(this, ForegroundService.class); mForegroundService.putExtra('Foreground', 'This is a foreground service.'); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { startForegroundService(mForegroundService); } else { startService(mForegroundService); }} else { Toast.makeText(this, '前臺服務正在運行中...', Toast.LENGTH_SHORT).show();}

//停止服務mForegroundService = new Intent(this, ForegroundService.class);stopService(mForegroundService);

關(guān)于前臺服務的介紹及使用就到這里了,相關(guān)使用已上傳至Github開發(fā)記錄,歡迎點擊查閱及Star,我也會繼續(xù)補充其它有用的知識及例子在項目上。

到此這篇關(guān)于Android通知欄前臺服務的實現(xiàn)的文章就介紹到這了,更多相關(guān)Android 通知欄前臺內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Android
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
另类小说一区二区三区| 欧美日韩亚洲在线观看| 欧美精品影院| 国产成人精品福利| 精品一区欧美| 色狠狠一区二区三区| 国产乱子精品一区二区在线观看 | 久久国产欧美日韩精品| 国产激情欧美| 韩国精品主播一区二区在线观看| 欧美午夜不卡| 国产欧美一区二区三区米奇| 伊人久久视频| 亚洲欧美日韩在线观看a三区| 青青草视频一区| 成人片免费看| 亚洲精品激情| 一区二区三区四区日本视频| 国产精品丝袜xxxxxxx| 久久精品99国产精品| 成人精品国产亚洲| 性一交一乱一区二区洋洋av| 国产精品美女午夜爽爽| 亚洲国内欧美| 久久精品 人人爱| 香蕉精品久久| 国产精品第十页| 国产高清一区| 久久久久黄色| 免费成人av在线播放| 国产精品毛片一区二区在线看| 亚洲欧美日韩综合国产aⅴ| 精品视频在线观看网站| 99xxxx成人网| 精品72久久久久中文字幕| 亚洲欧美日韩国产| 国产精品国产三级国产在线观看| 中文视频一区| 日本不良网站在线观看| 日韩国产在线观看一区| 91精品推荐| 国产精品chinese| 午夜在线播放视频欧美| 最近高清中文在线字幕在线观看1| 亚欧洲精品视频在线观看| 欧美黄色网页| 国产精品15p| 免费不卡在线观看| 久久精品国内一区二区三区水蜜桃| 日本免费新一区视频| 欧美午夜精品一区二区三区电影| 国产精品久久久久久久久免费高清 | 激情久久一区二区| 亚洲精品欧美| 欧美亚洲激情| 激情综合五月| 国产欧美日韩在线观看视频| 亚洲女人av| 日韩精品一区二区三区免费观影| 日韩精品中文字幕吗一区二区| 99精品视频在线| 精品国产精品久久一区免费式| 日韩一二三区在线观看| 亚洲精品小说| 欧美精品资源| 久久尤物视频| 欧美国产先锋| 日本欧美在线| 视频一区二区不卡| 91成人精品视频| www成人在线视频| 风间由美中文字幕在线看视频国产欧美 | 亚洲69av| 午夜宅男久久久| 一区二区小说| 成人va天堂| 色网在线免费观看| 福利片在线一区二区| 国产精品2023| 国产精品毛片久久久| 欧美影院视频| 日韩福利在线观看| 日本中文字幕一区二区| 国产精品普通话对白| 免费视频国产一区| 日韩不卡视频在线观看| 97精品视频在线看| 国产激情在线播放| 精品国产美女a久久9999| 麻豆久久久久久| 国产福利一区二区三区在线播放| 日韩国产欧美三级| 91欧美日韩在线| 国产免费av一区二区三区| 日韩高清一区在线| 国产探花在线精品| 国产精品色婷婷在线观看| 国产精品视频一区二区三区综合| 国产精品成人国产| 久久一区视频| 精品视频在线观看网站| 国内一区二区三区| 中文字幕在线官网| 欧美日韩一二| 亚洲在线观看| 亚洲人妖在线| 日韩av电影一区| 国产精品久久久久9999高清| 欧美日韩一区二区高清| 国产欧美精品久久| 国产成人精品一区二区免费看京 | 日韩中出av| 97久久超碰| 国产精品videosex极品| 精品视频97| 日韩欧美一区免费| 欧美精品自拍| 亚洲3区在线| 国产精品**亚洲精品| 国产黄大片在线观看| 久久国产影院| 亚洲在线观看| 国产精品最新自拍| 国产96在线亚洲| 欧美99久久| 国产手机视频一区二区| 亚洲精品乱码久久久久久蜜桃麻豆 | 青草久久视频| 午夜在线观看免费一区| 中文日韩在线| 亚洲中午字幕| 亚洲另类视频| 日韩av中文字幕一区二区三区| 亚洲影视一区二区三区| 综合在线一区| 色乱码一区二区三区网站| 久久精品免费一区二区三区| 日韩中文字幕亚洲一区二区va在线 | 日韩va欧美va亚洲va久久| 久久精品一本| 韩日一区二区三区| 91麻豆精品| 日韩免费在线| 自拍自偷一区二区三区| 久久免费福利| 激情久久婷婷| 日本久久一区| 成人小电影网站| 免费久久精品视频| 精品亚洲a∨一区二区三区18| 九一成人免费视频| 国产精品极品在线观看| 久久中文视频| 欧美有码在线| 精品日韩毛片| 国产精品一国产精品k频道56| 999国产精品视频| 日韩精品视频一区二区三区| 成人美女视频| 日韩av一区二区三区| 天堂√8在线中文| 亚洲激情欧美| 久久gogo国模啪啪裸体| 激情久久久久久| 国产精品激情电影| 亚洲欧美日韩综合国产aⅴ| 精品久久视频| 蜜桃视频免费观看一区| 国产中文欧美日韩在线| 伊人久久大香伊蕉在人线观看热v| 老司机精品视频网| 免费日本视频一区| 香蕉成人av| 国产精选一区| 欧美日韩少妇| 国内精品麻豆美女在线播放视频| 久久亚洲二区| 日本综合字幕| 麻豆视频观看网址久久| 日韩影院在线观看| 色老板在线视频一区二区| 国产情侣一区在线| 在线亚洲观看| 电影天堂国产精品| 欧美亚洲免费| 亚洲免费影视| 三级小说欧洲区亚洲区| 国产精品亚洲欧美| 亚洲精品护士| 欧美中文字幕| 视频福利一区| 麻豆高清免费国产一区| 日韩有吗在线观看| 最新亚洲一区| 美女福利一区二区三区| 国产乱码精品一区二区三区四区 | 日韩精品一区二区三区中文在线 | 97人人精品| 国产精品毛片久久久| 一区二区电影在线观看|