Android實(shí)現(xiàn)Service在前臺(tái)運(yùn)行服務(wù)
前言
在做手機(jī)音樂(lè)播放器的時(shí)候,讓我非??鄲赖囊患戮褪鞘謾C(jī)有清理內(nèi)存的軟件,比如百度,360等等,一點(diǎn)擊清理音樂(lè)就停止播放了,去后臺(tái)查看發(fā)現(xiàn)Service已經(jīng)被停止并重新啟動(dòng)了,這顯然不是我想要的,我希望音樂(lè)能夠在后臺(tái)播放,并且自己能控制什么時(shí)候退出,不想讓系統(tǒng)給我清理了,就像酷狗一直在通知欄顯示那樣,于是我就知道了在前臺(tái)運(yùn)行的服務(wù)。
實(shí)現(xiàn)
我們先看一下結(jié)果圖:

這是運(yùn)行在通知欄的界面,這樣就是讓服務(wù)在前臺(tái)運(yùn)行,再清理的時(shí)候就不會(huì)導(dǎo)致服務(wù)被關(guān)閉了。
好了,我們直接上代碼,因?yàn)橐_(kāi)啟服務(wù),所以我們必須先要有一個(gè)Service的子類,然后在onCreate里面實(shí)現(xiàn)它。
MyService.java
public class MyService extends Service {
public static final String TAG = "MyService";
@Override
public void onCreate() {
super.onCreate();
Notification notification = new Notification(R.drawable.ic_launcher,
"有通知到來(lái)", System.currentTimeMillis());
Intent notificationIntent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
notificationIntent, 0);
notification.setLatestEventInfo(this, "幻聽(tīng)", "許嵩",
pendingIntent);
startForeground(1, notification);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
可以看到,在onCreate方法里面我們得到Notification的一個(gè)對(duì)象,然后調(diào)用startForeground(1, notification);方法來(lái)實(shí)現(xiàn)在前臺(tái)運(yùn)行。如果想要退出只需要退出服務(wù)即可。
小結(jié)
在前臺(tái)運(yùn)行服務(wù)是十分有用的,特別是在做播放器開(kāi)發(fā)的時(shí)候,如果只是簡(jiǎn)單的清理一下音樂(lè)就退出播放了,這是很不能容忍的。
像酷狗一樣,在通知欄有自己Notification的自定義界面,下一篇文章我說(shuō)明如何自定義Notification的界面。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- android?Service基礎(chǔ)(啟動(dòng)服務(wù)與綁定服務(wù))
- Android服務(wù)Service教程
- Android8.0適配前臺(tái)定位服務(wù)service的示例代碼
- 淺談Android Service服務(wù)的高級(jí)技巧
- 說(shuō)說(shuō)在Android如何使用服務(wù)(Service)的方法
- Android 判斷某個(gè)服務(wù)(service)是否運(yùn)行
- Android Service服務(wù)詳細(xì)介紹及使用總結(jié)
- Android Service服務(wù)不被停止詳解及實(shí)現(xiàn)
- Android四大組件之Service服務(wù)詳細(xì)講解
相關(guān)文章
Android使用Notification在狀態(tài)欄上顯示通知
這篇文章主要為大家詳細(xì)介紹了Android使用Notification在狀態(tài)欄上顯示通知,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
詳解Android ScrollView嵌套EditText出現(xiàn)的滑動(dòng)問(wèn)題
本篇文章主要介紹了詳解ScrollView嵌套EditText出現(xiàn)的滑動(dòng)問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
Android自定義動(dòng)態(tài)壁紙開(kāi)發(fā)詳解
這篇文章主要為大家詳細(xì)介紹了Android自定義動(dòng)態(tài)壁紙開(kāi)發(fā),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
android實(shí)現(xiàn)banner輪播圖無(wú)限輪播效果
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)banner輪播圖無(wú)限輪播效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
Android UI設(shè)計(jì)與開(kāi)發(fā)之ViewPager仿微信引導(dǎo)界面以及動(dòng)畫(huà)效果
這篇文章主要為大家詳細(xì)介紹了Android UI設(shè)計(jì)與開(kāi)發(fā)之ViewPager仿微信引導(dǎo)界面以及動(dòng)畫(huà)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
Android Studio 實(shí)現(xiàn)九宮格功能
這篇文章主要介紹了Android Studio 實(shí)現(xiàn)九宮格,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
Android studio 生成帶Kotlin文檔的實(shí)現(xiàn)方式
這篇文章主要介紹了Android studio 生成帶Kotlin文檔的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
Android列表實(shí)現(xiàn)(3)_自定義列表適配器思路及實(shí)現(xiàn)代碼
Android 自定義列表適配器會(huì)提供很多的便利;下面的例子為使用自定義的列表適配器來(lái)顯示列表,感興趣的朋友可以研究下2012-12-12
新浪微博第三方登錄界面上下拉伸圖片之第三方開(kāi)源PullToZoomListViewEx(二)
這篇文章主要介紹了新浪微博第三方登錄界面上下拉伸圖片之第三方開(kāi)源PullToZoomListViewEx(二) 的相關(guān)資料,需要的朋友可以參考下2015-12-12

