每隔一段时间用android发送一个通知

Posted

技术标签:

【中文标题】每隔一段时间用android发送一个通知【英文标题】:Send a notification with android at an interval 【发布时间】:2016-12-24 05:31:48 【问题描述】:

我正在尝试将通知设置为在某个时间间隔后出现。我预计这会起作用,但是在我的手机上运行代码时似乎什么都没有发生,除了接收器被打印到控制台时,我似乎无法找出原因。任何帮助将不胜感激。

这是用于设置闹钟的代码。

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.SECOND, 10);
Intent intent = new Intent(getApplicationContext(), NotificationReciever.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_FIFTEEN_MINUTES, pendingIn

这是通知接收器类

public class NotificationReceiver extends BroadcastReceiver 
@Override
public void onReceive(Context context, Intent intent) 
    System.out.println("at reciever");
    NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

    Intent repeatingIntent = new Intent(context, LoginActivity.class);
    repeatingIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

    PendingIntent pendingIntent = PendingIntent.getActivity(context, 100, repeatingIntent, PendingIntent.FLAG_UPDATE_CURRENT);

    NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
            .setContentIntent(pendingIntent)
            .setContentTitle("Please Leave at the cage")
            .setContentText("It almost 5")
            .setAutoCancel(true);

    notificationManager.notify(100, builder.build());


这里是相关的清单行 接收者 android:name=".NotificationReciever" 使用权限 android:name="com.android.alarm.permission.SET_ALARM"

【问题讨论】:

com.android.alarm.permission.SET_ALARM 这不是基本通知所必需的 【参考方案1】:

基本上你需要为每个通知设置一个图标。

NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
            .setContentIntent(pendingIntent)
            .setContentTitle("Please Leave at the cage")
            .setSmallIcon(R.drawable.crosshair); //crosshair is the icon choice in this example
            .setContentText("It almost 5")
            .setAutoCancel(true);

【讨论】:

以上是关于每隔一段时间用android发送一个通知的主要内容,如果未能解决你的问题,请参考以下文章

在特定时间重复本地通知,并在同一时间后每隔一段时间重复一次本地通知

java中如何每隔一段时间执行一个函数

c#中如何保证每隔一段时间执行一个动作。

android.media.audiofx.Visualizer 每隔一段时间就会抛出异常

如何在JAVA中每隔一段时间执行一段程序

delphi中我用定时器每隔一段时间执行操作