Android 前台Service实现

来源:互联网 发布:雷士照明淘宝旗舰店 编辑:程序博客网 时间:2024/06/05 03:11

写个Service的小分支,前台Service的实现

在service需要直接和用户进行交互的情况下,也许合适的做法是把Service的优先级提升到与前台Activity一样高。这可以通过调用Service的startForeground方法来设置。

private void startPlayback() {int NOTIFICATION_ID = 1;// 创建一个单击通知时将打开的Activity的IntentIntent intent = new Intent(this, MainActivity.class);PendingIntent pi = PendingIntent.getActivity(this, 1, intent, 0);Notification myNotify = new Notification.Builder(this).setSmallIcon(R.drawable.ic_launcher).setTicker("通知").setContentTitle("前台service通知标题").setContentText("前台service通知内容").setContentIntent(pi).getNotification();// 设置notification的flag,表明在点击通知后,通知并不会消失,也在最右图上仍在通知栏显示图标。// 这是确保在activity中退出后,状态栏仍有图标可提下拉、点击,再次进入activity。myNotify.flags |= Notification.FLAG_NO_CLEAR;startForeground(NOTIFICATION_ID, myNotify);}

当Service不再需要前台运行的优先级时,可以使用stopForeground方法,把它移到后台,并可以选择是否移除通知,Notification在Service停止或者终止的时候会自动取消的。

public void pausePlayback() {//移到后台并移出NotificationstopForeground(true);}


0 0
原创粉丝点击