Android通知不会出现,但代码运行时没有错误

时间:2017-02-14 06:23:06

标签: android android-fragments android-notifications

我正在与一个新团队合作开展一个大型项目,并且已被要求添加通知,以便在满足某些条件时显示,但我无法让它们显示。

这是我现在的代码,省略了不相关的代码:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    this.context = container.getContext();
    view = inflater.inflate(R.layout.module_menu, container, false);
    this.initNotify("TITLE","Message");
    return view;
}

private void initNotify(String title, String message) {
    NotificationCompat.Builder b = new NotificationCompat.Builder(context)
            .setAutoCancel(true)
            .setOngoing(false)
            .setSmallIcon(R.drawable.ic_launcher)
            .setContentTitle(title)
            .setContentText(message)
            .setFullScreenIntent(PendingIntent.getActivity(context, 1, new Intent(), PendingIntent.FLAG_UPDATE_CURRENT), true)
            .setStyle(new NotificationCompat.BigTextStyle());

    NotificationManager nm = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
    nm.notify(1, b.build());
}

它所在的类是由我的主要活动调用的片段。代码在放入新应用程序时运行,没有任何问题,并正确显示通知,但拒绝使用此特定项目。最低API为8。

是否有任何我可能遗漏的内容或任何可能阻止我显示通知的片段?

此外,该应用程序是否可能会抑制"显示通知,如果是,我应该寻找什么代码?

2 个答案:

答案 0 :(得分:0)

我是因为您将通知ID设置为常量nm.notify(1, b.build());。要显示所有通知,您必须使用动态值。 像这样

private void initNotify(String title, String message,int id) {
    NotificationCompat.Builder b = new NotificationCompat.Builder(context)
            .setAutoCancel(true)
            .setOngoing(false)
            .setSmallIcon(R.drawable.ic_launcher)
            .setContentTitle(title)
            .setContentText(message)
            .setFullScreenIntent(PendingIntent.getActivity(context, 1, new Intent(), PendingIntent.FLAG_UPDATE_CURRENT), true)
            .setStyle(new NotificationCompat.BigTextStyle());

    NotificationManager nm = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
    nm.notify(id, b.build());
}

并将通知设置为(示例)

for(int i=0;i<10;i++){
initNotify("title", "message",i);
}

答案 1 :(得分:0)

我试过你的代码。我的机器还可以。

您是否有通知权限?