gpt4 book ai didi

android - 永久通知不显示

转载 作者:行者123 更新时间:2023-11-29 18:30:56 29 4
gpt4 key购买 nike

我于 2017 年底在 Play 商店提交了我的应用程序,它运行良好。然后它是在 Eclipse 中构建的。

现在我在 Android Studio 中运行它,相同的代码没有显示任何通知。这是一个永久通知,在我调用应用程序的 finish() 方法后出现。 (我为什么这样做:如果你想知道,请看底部)。

所以我查看了所有示例,但没有查看任何作品。不显示单个通知。

所以我开始一个 Activity ,并在 Activity 中显示通知。然后我调用 finish()

这是我的代码:

Intent intent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
intent, 0);

CharSequence connectedPart = getResources().getString(R.string.app_name);

String melding = "";

melding = getResources().getString(R.string.screentimeoutsetto) + " " + newTimeString + ".";
NotificationManager notificationManager = (NotificationManager) this
.getSystemService(Context.NOTIFICATION_SERVICE);

Notification notification = new Notification.Builder(this)
.setContentTitle(connectedPart)
.setTicker(connectedPart)
.setContentText(melding)
.setSmallIcon(R.drawable.ic_stat_name)
.setContentIntent(pendingIntent)
.setOngoing(true)
.build();
notification.flags |= Notification.FLAG_ONGOING_EVENT;
notification.flags |= Notification.FLAG_NO_CLEAR;
notificationManager.notify(2, notification);

依赖关系:

dependencies{
implementation "com.android.support:support-compat:26.1.0"
}

我为什么这样做:我的应用程序做一件事:切换屏幕超时。因此,当您启动它时,它会将屏幕超时设置为 30 分钟(启动、设置通知,然后是 finish())。重新开始,它会删除通知并恢复屏幕超时的原始值。

最佳答案

从 Android Oreo 开始,所有通知都需要一个通知 channel ,否则通知不会发布,并且您的 logcat 中会出现错误。这是从我的一个应用程序中提取的如何执行此操作的示例:

private static void createNotificationChannel(Context ctx) {
if(SDK_INT < O) return;

final NotificationManager mgr = ctx.getSystemService(NotificationManager.class);
if(mgr == null) return;

final String name = ctx.getString(R.string.channel_name);
if(mgr.getNotificationChannel(name) == null) {
final NotificationChannel channel =
new NotificationChannel(CHANNEL_ID, name, IMPORTANCE_DEFAULT);
mgr.createNotificationChannel(channel);
}
}

//Usage...
createNotificationChannel(context);

NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID);
builder.setSmallIcon(R.drawable.ic_alarm_white_24dp);
//etc...
manager.notify(id, builder.build());

关于android - 永久通知不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56312097/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com