我的应用程序使用闹钟计时器每 2 分钟左右检查一次服务器上的更新。我使用这个创建了一个循环计时器:
alarmIntent = new Intent(context, OnWakeUpReceiver.class);
PendingIntent pIntent = PendingIntent.getBroadcast(context, 0, alarmIntent, 0);
mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 120000, pIntent);
对于绝大多数人来说,这很好用。但少数人报告说该应用程序突然停止 self 更新。我做了一个简单的检查,看看计时器是否存在:
PendingIntent pIntent = PendingIntent.getBroadcast(context, 0, alarmIntent, PendingIntent.FLAG_NO_CREATE);
果然,当应用程序不再更新时,它返回 null,表示不存在计时器。
我的应用程序一直在控制闹钟计时器(在没有网络连接时将其关闭,然后在有网络连接时重新打开,以及其他情况)。我想也许我以某种方式将其关闭而不是重新打开它。所以我创建了一个版本,我删除了取消闹钟计时器的所有调用。所以我的应用程序不再有任何方法可以取消该计时器。但仅仅过了几天,闹钟定时器又一次消失了,应用程序也没有更新。
我没能在我自己的系统上做到这一点,也无法让别人找到一种万无一失的方法在他们的系统上重复它。我想知道 Android 系统是否正在取消它(尽管这会阻止我的应用程序再次运行),但在一个问题较多的系统上,他说他几乎没有在手机上运行任何东西。
我不知道 task killers 是否也可以杀死闹钟计时器,但我知道在我想到 SDK 8 之后,task killers 无论如何都不能再这样做了,而且我在版本 8 之后一直遇到问题。以及在不运行任务 killer 且未 Root 的系统上。
我什至创建了一个“看门狗”闹钟定时器,它运行一个接收器来检查主应用程序定时器是否已停止更新。我发现那个计时器也被取消了(它没有提供进一步的“上次运行”更新,并且从未注意到主应用程序已停止)。
这个问题对我来说是一个应用 killer 。任何人都可以建议任何方式来尝试调试发生的时间和发生的事情吗?当计时器被取消时,系统是否有任何日志条目,无论是系统还是其他?我讨厌它就这么蒸发得无影无踪。
最佳答案
我不能说这是完整的答案,但这两个变化似乎已经停止了很多被取消的警报:
1) 我正在执行未决 Intent 并取消它,而不是当我出于任何原因不得不取消警报时在警报管理器上调用 cancel() 。随着时间的推移,我不知道这是否会混淆警报管理器或其他什么,但它可能不是很好。现在我取消警报管理器以及未决 Intent 。
2) 我的一位用户提到当他们点击 Clear RAM 时,它如何禁用我的服务。显然,有些手机带有任务管理器,为它们提供了一个漂亮的 Shiny 按钮,可以让它们清除内存/RAM。该按钮甚至清楚地表明,按下它会导致某些应用程序停止工作……但用户仍然会捣乱它。我不知 Prop 体是怎么回事,但这似乎大多数时候都能消除我的警觉。所以我发布了一个很大的通知让人们停止这样做,从那以后事情真的平静了下来。糟糕的是,如果用户按下了死亡的神奇按钮,或者如果真的出了什么问题,我将永远不会真正知道下次我收到禁用的警报。
但不管怎样,现在情况好多了。
关于android - 我的安卓闹钟被取消了,不是我取消的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9809134/
我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R
我喜欢使用Textile或Markdown为我的项目编写自述文件,但是当我生成RDoc时,自述文件被解释为RDoc并且看起来非常糟糕。有没有办法让RDoc通过RedCloth或BlueCloth而不是它自己的格式化程序运行文件?它可以配置为自动检测文件后缀的格式吗?(例如README.textile通过RedCloth运行,但README.mdown通过BlueCloth运行) 最佳答案 使用YARD直接代替RDoc将允许您包含Textile或Markdown文件,只要它们的文件后缀是合理的。我经常使用类似于以下Rake任务的东西:
rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送
我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我
HashMap中为什么引入红黑树,而不是AVL树呢1.概述开始学习这个知识点之前我们需要知道,在JDK1.8以及之前,针对HashMap有什么不同。JDK1.7的时候,HashMap的底层实现是数组+链表JDK1.8的时候,HashMap的底层实现是数组+链表+红黑树我们要思考一个问题,为什么要从链表转为红黑树呢。首先先让我们了解下链表有什么不好???2.链表上述的截图其实就是链表的结构,我们来看下链表的增删改查的时间复杂度增:因为链表不是线性结构,所以每次添加的时候,只需要移动一个节点,所以可以理解为复杂度是N(1)删:算法时间复杂度跟增保持一致查:既然是非线性结构,所以查询某一个节点的时候
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
我正在开发我的第一个Rubygem,并捆绑了cucumber、rspec和shoulda-matches进行测试。当我运行rspec时,出现以下错误:/app/my_gem/spec/spec_helper.rb:6:in`':undefinedmethod`configure'forShoulda::Matchers:Module(NoMethodError)这是我的gem规范:#my_gem.gemspec...Gem::Specification.newdo|spec|......spec.add_development_dependency"activemodel"spec.a
我正在使用Heroku(heroku.com)来部署我的Rails应用程序,并且正在构建一个iPhone客户端来与之交互。我的目的是将手机的唯一设备标识符作为HTTPheader传递给应用程序以进行身份验证。当我在本地测试时,我的header通过得很好,但在Heroku上它似乎去掉了我的自定义header。我用ruby脚本验证:url=URI.parse('http://#{myapp}.heroku.com/')#url=URI.parse('http://localhost:3000/')req=Net::HTTP::Post.new(url.path)#boguspara
require"socket"server="irc.rizon.net"port="6667"nick="RubyIRCBot"channel="#0x40"s=TCPSocket.open(server,port)s.print("USERTesting",0)s.print("NICK#{nick}",0)s.print("JOIN#{channel}",0)这个IRC机器人没有连接到IRC服务器,我做错了什么? 最佳答案 失败并显示此消息::irc.shakeababy.net461*USER:Notenoughparame
我有这个代码:context"Visitingtheusers#indexpage."dobefore(:each){visitusers_path}subject{page}pending('iii'){shouldhave_no_css('table#users')}pending{shouldhavecontent('Youhavereachedthispageduetoapermissionic错误')}它会导致几个待处理,例如ManagingUsersGivenapractitionerloggedin.Visitingtheusers#indexpage.#Noreason