我已经在 SO 上尝试了各种解决方案,但似乎无法让它们中的任何一个工作。通知根本不会显示。谁能指出我的代码中可能存在的问题?private void startRunningInForeground() { setupNotificationChannel(); Intent showTaskIntent = new Intent(getApplicationContext(), MainActivity.class); showTaskIntent.setAction(Intent.ACTION_MAIN); showTaskIntent.addCategory(Intent.CATEGORY_LAUNCHER); showTaskIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); PendingIntent contentIntent = PendingIntent.getActivity( getApplicationContext(), 0, showTaskIntent, PendingIntent.FLAG_UPDATE_CURRENT); NotificationCompat.Builder builder = new NotificationCompat.Builder(this, SERVICE_NOTIFICATION_CHANNEL); builder.setSmallIcon(R.drawable.ic_stat_ic_logo); builder.setContentTitle(getString(R.string.merge_notif_title)); builder.setContentText(getString(R.string.merge_notif_description)); builder.setContentIntent(contentIntent); builder.setWhen(System.currentTimeMillis()); builder.setAutoCancel(false); builder.setOngoing(true); startForeground(NOTIFICATION_ID, builder.build()); } private void setupNotificationChannel() { // Only run this on versions of Android that require notification channels. if(Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { return; } NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); if(notificationManager == null) { return; } } 没有收到任何错误消息并且正在创建通知渠道,因为我在应用程序设置中看到了它。
2 回答
胡子哥哥
TA贡献1825条经验 获得超6个赞
你的 startForeground 做什么?
尝试修改它并确保您的操作系统> Android 8.0
顺便说一句,频道只需要创建一次。
PendingIntent contentIntent = PendingIntent.getActivity(
getApplicationContext(),
NOTIFICATION_ID, <---
showTaskIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
startForeground(NOTIFICATION_ID, builder.build());
notificationManager.notify(NOTIFICATION_ID, builder.build()); <--
可能是因为 Android O bg 服务限制
//Start service:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
startForegroundService(new Intent(this, YourService.class));
} else {
startService(new Intent(this, YourService.class));
}
添加回答
举报
0/150
提交
取消