android通知不起作用它不会返回任何错误
Posted
技术标签:
【中文标题】android通知不起作用它不会返回任何错误【英文标题】:andriod notification is not working it doesnt return any error 【发布时间】:2020-03-13 01:59:11 【问题描述】:我正在尝试创建一个简单的应用程序来每天在特定时间发出通知,但不知何故它不起作用并且它在所有代码中都没有返回错误:
按下时通知应该开始的按钮:
setRenider.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY,18);
calendar.set(Calendar.MINUTE,14);
calendar.set(Calendar.SECOND,0);
Intent intent = new Intent(getApplicationContext(),Notification_reciever.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(),100,intent,PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),AlarmManager.INTERVAL_DAY,pendingIntent);
);
那么这是通知类:
public class Notification_reciever extends BroadcastReceiver
@Override
public void onReceive(Context context, Intent intent)
NotificationManager notificationManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
Intent repeating_intent = new Intent(context,ReaptingActivity.class);
repeating_intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(context,100,repeating_intent,PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context).setContentIntent(pendingIntent).setSmallIcon(R.drawable.ic_free_breakfast_black_24dp)
.setContentTitle("Water Time").setContentText("Drink Water").setAutoCancel(true);
notificationManager.notify(100,builder.build());
我创建了一个简单的空活动,命名为 ReaptingActivity 然后我在清单中输入这些代码:
<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
<application
<receiver android:name=".Notification_reciever"/>
</application>
根据我遵循的教程,它应该可以工作,但它没有。请注意,我输入的时间是正确的,但它没有显示任何通知!!!
【问题讨论】:
您是否进行了调试以确定接收器是否正在运行?除此之外,从奥利奥开始,Notification
s 需要在发布之前创建NotificationChannel
s:***.com/q/43093260。
【参考方案1】:
我只需要它在通知类的 onRecieve 方法上添加一个频道。这就是我创建频道的方式:
int notificationId = 1;
String channelId = "channel-01";
String channelName = "Channel Name";
int importance = NotificationManager.IMPORTANCE_HIGH;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O)
NotificationChannel mChannel = new NotificationChannel(
channelId, channelName, importance);
notificationManager.createNotificationChannel(mChannel);
然后在通知兼容性构建器上我需要它来传递通道
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, channelId)
【讨论】:
以上是关于android通知不起作用它不会返回任何错误的主要内容,如果未能解决你的问题,请参考以下文章
对 Apple 的 APNS 的 PushSharp 通知不起作用,不会引发任何异常
android firebase后台通知仅在vivo设备上不起作用
Ionic 3 本地通知 LED/声音在 Android 中不起作用