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>

根据我遵循的教程,它应该可以工作,但它没有。请注意,我输入的时间是正确的,但它没有显示任何通知!!!

【问题讨论】:

您是否进行了调试以确定接收器是否正在运行?除此之外,从奥利奥开始,Notifications 需要在发布之前创建NotificationChannels:***.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 中不起作用

Android SQLite 更新行不起作用并且没有显示错误

向 FCM 服务器发送推送通知不起作用

iOS推送通知不起作用