Java 我的通知没有';当我点击我的按钮时,它不会出现
有了这段代码,我想点击一个按钮并显示一个通知。 问题是当“在我的按钮中单击”时,不会出现任何通知。 我在youtube上搜索,在示例代码中,我没有看到我的错误,你能看到吗Java 我的通知没有';当我点击我的按钮时,它不会出现,java,android,notifications,Java,Android,Notifications,有了这段代码,我想点击一个按钮并显示一个通知。 问题是当“在我的按钮中单击”时,不会出现任何通知。 我在youtube上搜索,在示例代码中,我没有看到我的错误,你能看到吗 btNotify.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ 通知(); } }); 公开无效通知(){ NotificationCompat.Builder=新建 通知建筑商(本); builder.setSmallIcon(R.dr
btNotify.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
通知();
}
});
公开无效通知(){
NotificationCompat.Builder=新建
通知建筑商(本);
builder.setSmallIcon(R.drawable.ic\u基线\u访问\u时间\u 24);
builder.setContentTitle(“时间”);
builder.setContentText(“Istoéum relógio”);
NotificationManager notifManager=(NotificationManager)
getSystemService(上下文通知服务);
notifManager.notify(1,builder.build());
}
您没有提到正在使用的android版本。
根据标准,当使用API级别26+(Android 8或更高版本)时,您必须向构建器构造函数提供一个通道
建议在应用程序启动时立即创建频道,因为没有它您无法发布通知(同样,这对API级别26+有效)。
别忘了给频道分配优先级。
您可以找到有关创建频道的详细信息
无论如何,通知通常用于在应用程序未使用时向用户提供信息。
如果您只想在按钮按下之后立即通知,您还可以考虑使用烤面包片或蛇棒吗?
它可以简单到:
Toast.makeText(yourContext, "Your message", Toast.LENGTH_LONG).show()
更新2020/08/11
根据您提到的android版本进行更新
android文档说明如下:
请注意,NotificationChannel构造函数需要一个重要性,使用NotificationManager类中的一个常量。此参数确定如何中断用户接收属于此频道的任何通知,尽管您还必须使用setPriority()设置优先级以支持Android 7.1及更低版本(如上所示)
val builder ...
.setPriority(NotificationCompat.PRIORITY_DEFAULT) // or any other priority level
更新2020-08-17
如何为API级别26+创建通道,如中所示:
我完全测试了您的代码,通知看起来没有任何问题。可能您已经阻止了当前应用的通知?如何查看是否阻止通知?在您的模拟器/手机中:设置->应用->应用->通知检查通知是否被阻止。我在android 6上测试了您的代码。也许你在更高版本上有问题。我正在android 9中测试,通知在我的android版本是android 7,大约1我更改为NotificationCompat.Builder=new NotificationCompat.Builder(这是“通知”)@epilif3sotnas我刚刚读了你的评论,你正在android 9中测试。那么“通知”是指你频道的ID?在引用频道之前,是否确保已创建频道?您可以随时调用createchannel方法,它只会被创建一次。最好在MainActivity的onCreate方法中调用它。我不太清楚,但我的应用程序是安卓7.0+的,我的模拟器是安卓9。你是说你的minSdk版本是安卓7.0?在这种情况下,必须将setPriority添加到生成器中。对于更高版本,您必须提供一个频道。因此,对于您正在测试的设备,您需要确保在尝试设置通知时已经创建了通道。你已经这样做了?
val builder ...
.setPriority(NotificationCompat.PRIORITY_DEFAULT) // or any other priority level
private fun createNotificationChannel() {
// Create the NotificationChannel, but only on API 26+ because
// the NotificationChannel class is new and not in the support library
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val name = getString(R.string.channel_name)
val descriptionText = getString(R.string.channel_description)
val importance = NotificationManager.IMPORTANCE_DEFAULT
val channel = NotificationChannel(CHANNEL_ID, name, importance).apply {
description = descriptionText
}
// Register the channel with the system
val notificationManager: NotificationManager =
getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
notificationManager.createNotificationChannel(channel)
}
}