您好,登錄后才能下訂單哦!
前言
在做手機音樂播放器的時候,讓我非常苦惱的一件事就是手機有清理內存的軟件,比如百度,360等等,一點擊清理音樂就停止播放了,去后臺查看發現Service已經被停止并重新啟動了,這顯然不是我想要的,我希望音樂能夠在后臺播放,并且自己能控制什么時候退出,不想讓系統給我清理了,就像酷狗一直在通知欄顯示那樣,于是我就知道了在前臺運行的服務。
實現
我們先看一下結果圖:
這是運行在通知欄的界面,這樣就是讓服務在前臺運行,再清理的時候就不會導致服務被關閉了。
好了,我們直接上代碼,因為要開啟服務,所以我們必須先要有一個Service的子類,然后在onCreate里面實現它。
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, "有通知到來", System.currentTimeMillis()); Intent notificationIntent = new Intent(this, MainActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); notification.setLatestEventInfo(this, "幻聽", "許嵩", 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的一個對象,然后調用startForeground(1, notification);方法來實現在前臺運行。如果想要退出只需要退出服務即可。
小結
在前臺運行服務是十分有用的,特別是在做播放器開發的時候,如果只是簡單的清理一下音樂就退出播放了,這是很不能容忍的。
像酷狗一樣,在通知欄有自己Notification的自定義界面,下一篇文章我說明如何自定義Notification的界面。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。