小编chr*_*off的帖子

如何创建持久的AlarmManager

编辑:根据CommonsWare的答案澄清问题

我们通过AlarmManager安排一个警报,每60秒触发一次.当我们的应用程序被杀死时,我们的警报似乎不再执行.即使应用程序被手动或系统杀死,有没有办法使这些警报持续存在?

这对我们来说是一个问题,因为我们有一个显示时间的小部件应用程序.这意味着我们需要每分钟更新一次.为了解决AppWidgetProvider的onUpdate方法的30分钟更新限制,我们使用AlarmManager.它通常运行良好,但有些用户报告时间不同步.在与其中几个人交谈之后,我怀疑我们的应用程序是通过任务杀手应用程序手动杀死的,或者Android本身正在杀死我们的应用程序.

对根问题的任何其他替代解决方案(在窗口小部件中保持时间同步)也是受欢迎的.

以下是我们执行的用于安排警报的代码:

Intent intent = new Intent(UPDATE_TIME);
PendingIntent pIntent = PendingIntent.getBroadcast(ctx,
  0 /* no requestCode */, intent, PendingIntent.FLAG_UPDATE_CURRENT );

// get alarm params
Date d = new Date();
long timeTilMinuteChange = 60*1000-d.getSeconds()*1000;
long startTime = System.currentTimeMillis() + + timeTilMinuteChange;

AlarmManager am = (AlarmManager) ctx.getSystemService(Context.
am.cancel(pIntent);
am.set(AlarmManager.RTC, System.currentTimeMillis(), pIntent);
        am.setRepeating(AlarmManager.RTC, startTime, 60000, pIntent);
Run Code Online (Sandbox Code Playgroud)

android

23
推荐指数
2
解决办法
1万
查看次数

如何检测Daydream是否开启?

是否有可能检测到Daydream是打开还是关闭?如果是这样,怎么样?

编辑:为了澄清,我希望阅读DayDream的系统设置(很像飞机模式和其他设置).你可以从Intent.ACTION_DREAMING_STARTED和Intent.ACTION_DREAMING_STOPPED推断它,但它不是一回事.

android screensaver

8
推荐指数
1
解决办法
1760
查看次数

在javascript中占用怪癖模式的元素的宽度?

我一直在扫描所有流行的js库,但我找不到一个具有宽度函数的DOM元素实际上在Internet Explorer中占用了怪癖模式.问题是当使用怪癖模式时,填充和边框不会计入宽度.据我所知,当doctype被省略或doctype设置为html 3.2时会发生这种情况.

显然我可以将doctype设置为符合标准的东西,但是这个脚本可以嵌入任何地方,所以我无法控制doctype.

将问题分解为更小的部分:

1)你如何检测怪癖模式?2)从元素中提取边框和填充以补偿的最佳方法是什么?

原型示例:

<html>
<head>
</head>
<body>

<div id="mydiv" style="width: 250px; pading-left: 1px; border: 2px black solid">hello</div>

<script>
  alert($('mydiv').getWidth())
</script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

结果:

253(ff)250(即)

提前致谢!

html javascript css

6
推荐指数
1
解决办法
2918
查看次数

标签 统计

android ×2

css ×1

html ×1

javascript ×1

screensaver ×1