Android每日通知无法正常运行

Zookey

我想每天早上9点从我的应用程序显示通知。

因此,我正在使用通知管理器,警报管理器,BroadcastReciever和服务来实现这一点。

但是我有一个问题,因为通知是随机显示的。当我第一次启动该应用程序并设置时间时,它工作正常,但后来该应用程序启动并在随机时间显示通知。

我该如何解决?

这是我的代码:

主要活动

@Override
protected void onStart() {
    super.onStart();
    setAlarm();
}

public void setAlarm(){


    Calendar calendar = Calendar.getInstance();
    Calendar now = Calendar.getInstance();


    calendar.set(Calendar.HOUR_OF_DAY, 15);
    calendar.set(Calendar.MINUTE, 43);
    calendar.set(Calendar.SECOND, 0);

    if(calendar.getTime().after(now.getTime())) {
        alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

        alarmIntent = new Intent(MainActivity.this, HoroscopeNotification.class);
        pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);


        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);        }

 }

HoroscopNotification(广播接收者)

public class HoroscopeNotification extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent arg1) {
        showNotification(context);
    }

    private void showNotification(Context context) {
        Intent service1 = new Intent(context, AlarmService.class);
        context.startService(service1);
    }
}

报警服务

public class AlarmService extends Service {
    private static final int NOTIFICATION_ID = 1;
    private NotificationManager notificationManager;
    private PendingIntent pendingIntent;

    @Override
    public IBinder onBind(Intent arg0)
    {
         return null;
    }

    @SuppressWarnings("static-access")
    @Override
    public void onStart(Intent intent, int startId)
    {
        super.onStart(intent, startId);
        Context context = this.getApplicationContext();
        notificationManager = (NotificationManager)context.getSystemService(context.NOTIFICATION_SERVICE);
        Intent mIntent = new Intent(this, MainActivity.class);
        pendingIntent = PendingIntent.getActivity(context, 0, mIntent, PendingIntent.FLAG_CANCEL_CURRENT);
        NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
        builder.setContentTitle("Horoskop");
        builder.setContentText("Pročitajte današnji horoskop");
        builder.setSmallIcon(R.drawable.ic_bik);
        builder.setAutoCancel(true);
        builder.setContentIntent(pendingIntent);

        notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
        notificationManager.notify(NOTIFICATION_ID, builder.build());
    }
}
西蒙

您会在Android SDK参考资料中注意到以下AlarmManager.setRepeating()状态:

注意:从API 19开始,所有重复警报都是不精确的。如果您的应用程序需要精确的交付时间,则它必须使用一次性精确警报,并如上所述每次重新安排。targetSdkVersion早于API 19的旧版应用程序将继续将所有警报(包括重复警报)视为精确警报。

您需要在APIv19AlarmManager.set()之前的版本和AlarmManager.setExact()APIv19 +上使用。当您PendingIntent被解雇时,您会收到您的广播,您BroadcastReceiver.onReceive()可以在第二天设置另一个确切的警报。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

GCM推送通知无法在Android上正常运行

来自分类Dev

通知无法在Android API 28上正常运行

来自分类Dev

Chrome扩展丰富通知无法正常运行

来自分类Dev

Google附近的通知无法正常运行

来自分类Dev

Android bindString无法正常运行

来自分类Dev

MediaPlayer无法正常运行(Android)?

来自分类Dev

Android Toast通知无法正常工作

来自分类Dev

Android计划的通知无法正常工作

来自分类Dev

onPostExecute无法运行,@ override无法正常运行android开发

来自分类Dev

附加视频无法正常运行-Android

来自分类Dev

android:windowSoftInputMode =“ adjustResize”无法正常运行

来自分类Dev

Android checkbox.isChecked()无法正常运行

来自分类Dev

YouTube Android API seekToMillis()无法正常运行

来自分类Dev

强标签无法正常运行Android Webview

来自分类Dev

drawCircle方法无法正常运行(Android)

来自分类Dev

Android if-else语句无法正常运行

来自分类Dev

多个警报无法正常运行Android

来自分类Dev

android 9补丁无法正常运行

来自分类Dev

Android Eclipse调试无法正常运行

来自分类Dev

离子运行android无法正常工作

来自分类Dev

Android RecyclerView OnItemTouchListener无法正常运行

来自分类Dev

带有每日通知的Android应用

来自分类Dev

Android通知操作-Intent Extra无法正常工作

来自分类Dev

Android Wear-通知-setContentAction()无法正常工作

来自分类Dev

android-GCM通知动态大图标无法正常工作

来自分类Dev

Android通知操作:待处理的Intent无法正常工作

来自分类Dev

android 中的 Firebase 推送通知无法正常工作

来自分类Dev

通知无法在android studio上运行(API 27,ANDROID 8.1.0)

来自分类Dev

DIR无法正常运行

Related 相关文章

热门标签

归档