Android8.0 Server启动并取消弹框

Android8.0以上server的启动有新的方法:


if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

            startForegroundService(new Intent(this, AreaService.class));

}else {

            startService(new Intent(this, AreaService.class));

}

在AreaService的onCreate和onDestroy添加下面的方法:


@Override

    public void onCreate() {

        super.onCreate();

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

            StringCHANNEL_ID="myservice";

            NotificationChannel channel =new NotificationChannel(CHANNEL_ID,

                    "mytest", NotificationManager.IMPORTANCE_HIGH);

            ((NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE)).createNotificationChannel(channel);

            Notification notification =new NotificationCompat.Builder(this, CHANNEL_ID)

.setContentTitle("")

.setContentText("").build();

            startForeground(1, notification);   //主要这边的不要写startForeground(0, notification); 


     NotificationManager mNotificationManager = (NotificationManager)                         getSystemService(Context.NOTIFICATION_SERVICE);

            mNotificationManager.deleteNotificationChannel(CHANNEL_ID); //    取消弹框操作

        }

}


@Override

public void onDestroy() {

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

            stopForeground(true);

    }

    super.onDestroy();

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容