如何启动前台服务

Android 8.0 有一项复杂功能;系统不允许后台应用创建后台服务。 因此,Android 8.0 引入了一种全新的方法,即 Context.startForegroundService(),以在前台启动新服务。

1、

<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
2、
Intent mIntent = new Intent(this,XXXService.class);
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.O) {
    startForegroundService(mIntent);
}

3、

public void onCreate() {
startForeground(910888,buildForegroundNotification());
}

4、

private Notification buildForegroundNotification() {
        String CHANNEL_ID = "download_app_state";
        String CHANNEL_NAME = "down_state";
        NotificationChannel mNotificationChannel = null;
        Notification.Builder builder = null;

//O之后要使用NotificationChannel       

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){     
            mNotificationChannel = new NotificationChannel(CHANNEL_ID,CHANNEL_NAME,
                    NotificationManager.IMPORTANCE_HIGH);
            builder = new Notification.Builder(this,CHANNEL_ID);
            NotificationManager mNotificationManager =
                    (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
            mNotificationManager.createNotificationChannel(mNotificationChannel);

        }
        builder.setOngoing(true);

        builder.setContentTitle(getString(R.string.app_label))
                .setContentText(getString(R.string.app_label))
                .setSmallIcon(R.mipmap.ic_launcher_calendar)
                .setTicker(getString(R.string.no_title_label))
                .setPriority(Notification.PRIORITY_MAX)
                .setAutoCancel(true);
        return builder.build();
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值