如何使用NotificationCompat.Builder和startForeground?

简短的问题:

我正在尝试使用NotificationCompat.Builder类来创build将用于该服务的通知,但由于某种原因,我要么没有看到通知,要么不能取消它,当服务应该是摧毁(或停止在前台)。

我的代码:

@Override public int onStartCommand(final Intent intent, final int flags, final int startId) { final String action = intent == null ? null : intent.getAction(); Log.d("APP", "service action:" + action); if (ACTION_ENABLE_STICKING.equals(action)) { final NotificationCompat.Builder builder = new Builder(this); builder.setSmallIcon(R.drawable.ic_launcher); builder.setContentTitle("content title"); builder.setTicker("ticker"); builder.setContentText("content text"); final Intent notificationIntent = new Intent(this, FakeActivity.class); final PendingIntent pi = PendingIntent.getActivity(this, 0, notificationIntent, 0); builder.setContentIntent(pi); final Notification notification = builder.build(); // notification.flags |= Notification.FLAG_FOREGROUND_SERVICE; // notification.flags |= Notification.FLAG_NO_CLEAR; // notification.flags |= Notification.FLAG_ONGOING_EVENT; startForeground(NOTIFICATION_ID, notification); // mNotificationManager.notify(NOTIFICATION_ID, notification); } else if (ACTION_DISABLE_STICKING.equals(action)) { stopForeground(true); stopSelf(); // mNotificationManager.cancel(NOTIFICATION_ID); } return super.onStartCommand(intent, flags, startId); } 

评论的命令是我的试验,使其工作。 没有工作是由于某种原因。

我甚至添加了一个假的活动,因为它需要一个contentIntent,但它仍然不起作用。

任何人都可以请帮忙?

Solutions Collecting From Web of "如何使用NotificationCompat.Builder和startForeground?"

前段时间,我遇到了完全相同的问题,并且我发现由于某种原因,通知ID 0与startForeground()startForeground() ,是否是代码中NOTIFICATION_ID的值?


编辑:文档现在已更新为状态0是无效的ID