Android 前台Service实现

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

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

private void startPlayback() {
		
		int NOTIFICATION_ID = 1;

		// 创建一个单击通知时将打开的Activity的Intent
		Intent 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() {
		//移到后台并移出Notification
		stopForeground(true);
	}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值