Android 服务提示通知无效
Android Head-up notification not working from a service
我有一个提示通知代码,当从 Activity 触发时,它可以完美地工作。
我尝试使用服务中的相同代码进行触发,但它不起作用。
请注意代码没问题(因为它在 Activity 中有效),我尝试了前台服务,但仍然没有成功。
服务和 activity 的正常通知都可以。
我还检查了没有达到限制(我知道可能有时间保护所以我在 5 分钟内测试一次通知)
有什么想法是错误的吗?
public void notifyFromTask(TaskStateData state){
NotificationCompat.Builder builder = new NotificationCompat.Builder(mCtx, HEADUP_CHANNEL_ID);
builder.setContentTitle(state.mTitle);
builder.setStyle(new NotificationCompat.BigTextStyle().bigText(state.mText));
switch (state.mTaskType){
case NetworkTask2.DOWNLOAD_TASK:
builder.setSmallIcon(R.drawable.ic_menu_download);
break;
case NetworkTask2.UPLOAD_TASK:
builder.setSmallIcon(R.drawable.ic_menu_upload);
break;
case NetworkTask2.SYNC_TASK:
builder.setSmallIcon(R.drawable.ic_menu_sync);
break;
default:
builder.setSmallIcon(R.drawable.ic_menu_sync);
break;
}
builder.setLargeIcon(BitmapFactory.decodeResource(mCtx.getResources(), R.drawable.icon));
builder.setColor(mCtx.getResources().getColor(R.color.colorPrimaryDark));
builder.setGroup(mCtx.getString(R.string.app_name));
builder.setContentIntent(getPendingIntent());
builder.setPriority(NotificationCompat.PRIORITY_HIGH);
builder.setDefaults(NotificationCompat.DEFAULT_SOUND | NotificationCompat.DEFAULT_VIBRATE);
mNM.notify(state.mTaskId, builder.build());
}
通知后调用startForeground(state.mTaskId,builder.getNotification())
我有一个提示通知代码,当从 Activity 触发时,它可以完美地工作。 我尝试使用服务中的相同代码进行触发,但它不起作用。 请注意代码没问题(因为它在 Activity 中有效),我尝试了前台服务,但仍然没有成功。 服务和 activity 的正常通知都可以。 我还检查了没有达到限制(我知道可能有时间保护所以我在 5 分钟内测试一次通知)
有什么想法是错误的吗?
public void notifyFromTask(TaskStateData state){
NotificationCompat.Builder builder = new NotificationCompat.Builder(mCtx, HEADUP_CHANNEL_ID);
builder.setContentTitle(state.mTitle);
builder.setStyle(new NotificationCompat.BigTextStyle().bigText(state.mText));
switch (state.mTaskType){
case NetworkTask2.DOWNLOAD_TASK:
builder.setSmallIcon(R.drawable.ic_menu_download);
break;
case NetworkTask2.UPLOAD_TASK:
builder.setSmallIcon(R.drawable.ic_menu_upload);
break;
case NetworkTask2.SYNC_TASK:
builder.setSmallIcon(R.drawable.ic_menu_sync);
break;
default:
builder.setSmallIcon(R.drawable.ic_menu_sync);
break;
}
builder.setLargeIcon(BitmapFactory.decodeResource(mCtx.getResources(), R.drawable.icon));
builder.setColor(mCtx.getResources().getColor(R.color.colorPrimaryDark));
builder.setGroup(mCtx.getString(R.string.app_name));
builder.setContentIntent(getPendingIntent());
builder.setPriority(NotificationCompat.PRIORITY_HIGH);
builder.setDefaults(NotificationCompat.DEFAULT_SOUND | NotificationCompat.DEFAULT_VIBRATE);
mNM.notify(state.mTaskId, builder.build());
}
通知后调用startForeground(state.mTaskId,builder.getNotification())