alarmmanager-关于android5.1AlarmManagerService中移除Alarm的问题

问题描述

关于android5.1AlarmManagerService中移除Alarm的问题
     private void removeLocked(PendingIntent operation) {
        boolean didRemove = false;
        for (int i = mAlarmBatches.size() - 1; i >= 0; i--) {
            Batch b = mAlarmBatches.get(i);
            ArrayList<Alarm> alarmList = b.alarms;
            Alarm alarm = null;
            for (int j = alarmList.size() - 1; j >= 0; j--) {
                alarm = alarmList.get(j);
                if (alarm.type == RTC_POWEROFF_WAKEUP && alarm.operation.equals(operation)) {
                    long alarmSeconds, alarmNanoseconds;
                    alarmSeconds = alarm.when / 1000;
                    alarmNanoseconds = (alarm.when % 1000) * 1000 * 1000;
                    Slog.w(TAG,"Clear alarm type=" + alarm.type + ",alarmSeconds=" +
                       alarmSeconds);
                    clear(mNativeData, alarm.type, alarmSeconds, alarmNanoseconds);
                    mNextRtcWakeup = 0;
                }
            }
            didRemove |= b.remove(operation);
            if (b.size() == 0) {
                mAlarmBatches.remove(i);
            }
        }

        if (didRemove) {
            if (DEBUG_BATCH) {
                Slog.v(TAG, "remove(operation) changed bounds; rebatching");
            }
            rebatchAllAlarmsLocked(true);
            rescheduleKernelAlarmsLocked();
            updateNextAlarmClockLocked();
        }
    }

在google源码中,移除alarm中的判断语句 if (alarm.type == RTC_POWEROFF_WAKEUP && alarm.operation.equals(operation)) ,难道只移除RTC_POWEROFF_WAKEU
这一种闹钟么?

解决方案

Android Studio升级到了5.1的问题

时间: 2024-12-02 02:50:47

alarmmanager-关于android5.1AlarmManagerService中移除Alarm的问题的相关文章

浅谈从谷歌索引库或搜索结果中移除内容

"从谷歌网站管理员工具中删除网址,或者使用robots文件屏蔽蜘蛛抓取某类型链接,那么谷歌便会自然而然地将这些内容从索引库中删除",想必有不少人都这么认为的吧,包括我,但其实这是不完全正确的. 首先,谷歌管理员删除网址工具主要是用来删除两类型网址:一种是404错误网址,另一种是蜘蛛在日志文件中大量爬取的无效地址(网站内部链接.带参数链接等).当我们对这两种地址提交删除后,可能在搜索结果中不再显示这两种类型地址.但在搜索引擎索引库中,对于有明确的HTTP返回码为404 Not Found

objective c-在ios应用中移除“”符号

问题描述 在ios应用中移除""符号 在json反响中获取了url字符串,其中有反斜杠.我想删除这些符号. 我写的代码没有实现: NSString *responseData = [[NSString alloc]initWithData:[NSData dataWithContentsOfURL:url] encoding:NSUTF8StringEncoding]; NSString* encodedString = [responseData stringByAddingPerc

ios-从NSMutableData中移除字节

问题描述 从NSMutableData中移除字节 NSMutableData对象中移除最末六位的字节,对象如下: NSMutableData *reducedDataPacket = [[NSMutableData alloc] init]; reducedDataPacket = [myCompressedData copy]; NSRange range = NSMakeRange([reducedDataPacket length]-6, 6); [reducedDataPacket re

中移挑战十天线牛仔62831兴奋若狂

华富财经 中移(941)挑战十天线, 牛仔(62831)兴奋若狂, 现报0.170, 升18%, 成交1300万元; 收回价64.88, 行使价58.88, 将于11月到期.

ios-iOS rootViewController中移除KVO报错

问题描述 iOS rootViewController中移除KVO报错 在rootViewController中写了一个KVO ,在dealloc中移除观察者. 程序重新运行的时候报错,由于先执行dealloc 后执行viewDidLoad,移除观察者报错.目前想到的方法是[self isViewLoaded]判断下是否执行了viewDidLoad.有没有其他好的解决方法 解决方案 http://www.cocoachina.com/bbs/read.php?tid=457872 解决方案二:

Windows 10:如何从资源管理器中移除/找回OneDrive

作为微软云战略中的重要一环,OneDrive的地位自然是无可置疑的,用户可以通过OneDrive来自由地上传和下载各种文件,不过由于国内的某些原因,部分地区的用户不能很好地使用OneDirve这项功能,想要让其从电脑中移除. 对于这些用户来说,OneDrive就像"钉子户"一样霸据在资源管理器之中,那么有没有什么办法能够把"OneDrive"这个神仙从资源管理器中请出呢? 办法还是有的,这个时候就要用到万能的注册表大法了. 以下是具体的操作手段: 使用Win+R打开

如何从Ubuntu的声音菜单中移除音乐播放器

如何从Ubuntu的声音菜单中移除音乐播放器 自从2010年首次出现,Ubuntu 的声音菜单已经被证明是Unity 桌面上的最流行的独有特性之一. 把音乐播放器与音量控制程序集成到一个标准的界面里是一种看起来很聪明的做法,这样就不用到处找声音相关的各种程序.人们不禁要问,为什么其它操作系统没有效仿这种做法! 臃肿 尽管它看起来很方便,但是这个小应用当前存在一个问题:很多播放器都堆在一起,像一个组合音响一样.也许你用得着,但是你安装的所有的媒体播放器都挤在这里,这会让人看着很累赘和反感. 我将要

《Python Cookbook(第3版)中文版》——1.10 从序列中移除重复项且保持元素间顺序不变

1.10 从序列中移除重复项且保持元素间顺序不变 1.10.1 问题 我们想去除序列中出现的重复元素,但仍然保持剩下的元素顺序不变. 1.10.2 解决方案 如果序列中的值是可哈希(hashable)的,那么这个问题可以通过使用集合和生成器轻松解决.示例如下[1]: def dedupe(items): seen = set() for item in items: if item not in seen: yield item seen.add(item) 这里是如何使用这个函数的例子: >>

Android在动画结束的onAnimationEnd中移除视图报空指针

问题描述 Android在动画结束的onAnimationEnd中移除视图报空指针 我在通过按钮删除一个视图,使用了淡出动画,在动画结束的监听中,删除视图removeView,报了空指针,但是用了handler.post后就好了,为什么呢? 解决方案 应该是异步操作中不能直接操作UI组件,要通过handler 解决方案二: debug 看一下控制空指针什么 解决方案三: 要么贴一下源码,要么贴一下日志,这样只能瞎猜,不好不好.