我原以为这不是问题,但还是遇到了麻烦。 无论我怎么做,我的服务通知都无法滑动消除。
我有一个进度通知,在服务中使用startForeground(id, Notification)启动。 以下是我的构建方式:
public Notification createErrorNotification(String message) {
NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext());
Intent showAppIntent = new Intent(getApplicationContext(), MainActivity.class);
showAppIntent.setAction(Intent.ACTION_MAIN);
showAppIntent.addCategory(Intent.CATEGORY_LAUNCHER);
PendingIntent pendingShowAppIntent = PendingIntent.getActivity(getApplicationContext(), 10,
showAppIntent, PendingIntent.FLAG_CANCEL_CURRENT);
builder.setContentTitle(getString(R.string.label_download_error))
.setWhen(0)
.setContentText(message)
.setContentIntent(pendingShowAppIntent)
.setAutoCancel(true)
.setOngoing(false)
.setSmallIcon(R.drawable.ic_launcher);
return builder.build();
}
如果发生错误,我会用描述错误的通知取代我的进度通知,禁用“正在进行”和其他内容。 我也会完全停止服务:
private void stopService() {
stopSelf();
taskThread.stopLooper();
downloadHandler.stopExecution();
downloadHandler = null;
taskThread = null;
}
并调用
stopForeground(false);
因为我希望通知保持在屏幕上并由用户关闭,所以false - 不起作用。但是滑动关闭根本不起作用。
如果我调用stopForeground(true) - 通知将被正确地移除。
有人有什么想法吗?我在这里做错了什么?