Android AlarmManager的取消


取消alarm使用AlarmManager.cancel()函數,傳入參數是個PendingIntent實例。

該函數會將所有跟這個PendingIntent相同的Alarm全部取消,怎么判斷兩者是否相同,android使用的是intent.filterEquals(),具體就是判斷兩個PendingIntent的action、data、type、class和category是否完全相同。

具體代碼如下:

設置鬧鍾:

                                // 指定啟動AlarmActivity組件
                                Intent intent = new Intent(AlarmTest.this,
                                        AlarmActivity.class);
                                intent.setAction("111111");
                                // 創建PendingIntent對象
                                PendingIntent pi = PendingIntent.getActivity(
                                        AlarmTest.this, 0, intent, 0);
                                Calendar c = Calendar.getInstance();
                                // 根據用戶選擇時間來設置Calendar對象
                                System.out.println("hourOfDay = " + hourOfDay);
                                System.out.println("minute = " + minute);
                                c.set(Calendar.HOUR, hourOfDay);
                                c.set(Calendar.MINUTE, minute);
                                // 設置AlarmManager將在Calendar對應的時間啟動指定組件
                                aManager.set(AlarmManager.RTC_WAKEUP,
                                        c.getTimeInMillis(), pi);

 

取消該鬧鍾:

        //用於取消的
        Intent intent = new Intent(AlarmTest.this, AlarmActivity.class);
        intent.setAction("111111");
        // 創建PendingIntent對象
        PendingIntent pendingIntent = PendingIntent.getActivity(
                AlarmTest.this, 0, intent, 0);
        aManager.cancel(pendingIntent);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM