मैंने प्रतिदिन दोपहर में रवाना होने और एक अधिसूचना भेजने के लिए एक अलार्म प्रबंधक स्थापित किया है, और एक भाग को छोड़कर पूरी तरह से काम कर रहा है। जब मैं पहली बार ऐप खोलता हूं तो यह समय की परवाह किए बिना तुरंत एक अधिसूचना भेजता है।

Intent myIntent = new Intent(arg0, NotificationService.class);
    myIntent.putExtra("compDate", tti.getEvents()[0][1]);
    AlarmManager alarmManager = (AlarmManager)arg0.getSystemService(Context.ALARM_SERVICE);
    PendingIntent pendingIntent = PendingIntent.getService(arg0, 0, myIntent, 0);

    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.SECOND, 0);
    calendar.set(Calendar.MINUTE, 0);
    calendar.set(Calendar.HOUR, 12);
    calendar.set(Calendar.AM_PM, Calendar.AM);
    calendar.set(Calendar.DAY_OF_MONTH, 1);

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

उस विधि को onCreate विधि में कोड के इस टुकड़े द्वारा बुलाया जा रहा है

int f = preferences.getInt("numberOfLaunches", 1);

    if(f < 2){
        alarmMethod();
        f++;
        editor.putInt("numberOfLaunches", f);
        editor.apply();
    }

वह एकमात्र समय है जब इसे बुलाया जा रहा है

1
Dylan Zammit 4 पद 2015, 15:05

2 जवाब

सबसे बढ़िया उत्तर

इसकी वजह से सबसे अधिक संभावना है:

यदि कहा ट्रिगर समय अतीत में है, तो अलार्म तुरंत चालू हो जाएगा

http://developer.android.com/reference/android/app/AlarmManager.html#setRepeating

सुनिश्चित करें कि आपने भविष्य में अपना पहला अलार्म सेट किया है।

0
Kuffs 4 पद 2015, 12:17

इस सवाल के लिए ठीक है धन्यवाद: Android अलार्म तुरंत बंद कर देता है और कफ का जवाब, मैंने कहा। कोड का यह टुकड़ा और यह एक आकर्षण की तरह काम करता था।

Date dat  = new Date();
    Calendar cal_alarm = Calendar.getInstance();
    Calendar cal_now = Calendar.getInstance();
    cal_now.setTime(dat);
    cal_alarm.setTime(dat);
    cal_alarm.set(Calendar.HOUR_OF_DAY, 12);
    cal_alarm.set(Calendar.MINUTE, 0);
    cal_alarm.set(Calendar.SECOND, 0);

    if(cal_alarm.before(cal_now)){
        cal_alarm.add(Calendar.DATE,1);
    }
0
Community 23 मई 2017, 10:27