Service 或 IntentService 或 AlarmManager 方法

2024-04-05

我正在构建一个类似游戏的应用程序,并且我一直在阅读有关在后台、前台、警报等中使用服务运行事物的所有不同方法,我有点困惑。

我的应用程序会像这样(示例):

  • 用户按下 Main 中的按钮,然后他可以关闭应用程序
  • 30 分钟后 Activity1 打开
  • 用户完成了该活动中他需要做的任何事情,这 2 小时后触发下一个活动开始
  • 2小时后Activity2打开
  • 用户也完成了他需要做的任何事情,触发 下一个
  • 一天后 Activity3 打开,依此类推

最好的方法是什么?是否有一个持续运行的服务来打开这些活动,或者设置一个新的警报以在每次用户完成其中一项活动时启动?


请不要仅仅因为它可以闲置几个小时而创建服务。这个不成立。

您需要做的是创建警报。就像是:

alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 14);

alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
        AlarmManager.INTERVAL_DAY, alarmIntent);

这只是一个一般的例子报警接口 http://developer.android.com/reference/android/app/AlarmManager.html。您需要根据您的需要进行调整。


最后 - 请注意:警报无法启动恢复!也就是说:如果出于任何原因 用户的设备出现故障,您的所有警报都将丢失。

如果您确实希望您的应用程序具有启动弹性,您将需要注册 事件称为接收_启动_完成(想想启动后)您将在其中重新启动挂起的 警报:

//manifest:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>



<receiver android:name=".MyBootReceiver"
        android:enabled="false">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED"></action>
    </intent-filter>
</receiver>


//java class
public class MyBootReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
            // restart alarms
        }
    }
}


希望能帮助到你

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Service 或 IntentService 或 AlarmManager 方法 的相关文章

随机推荐

  • PhoneGap 应用程序被拒绝 10.6

    我们的 PhoneGap 应用程序刚刚被拒绝 二进制被拒绝 10 6 Apple 和我们的客户高度重视简单 精致 有创意 经过深思熟虑的界面 他们需要更多的工作 但 值得 苹果设定了很高的标准 如果您的用户界面很复杂或者 不太好 可能会被拒
  • 如何在 Eclipse 中为托管 ARM C 项目添加单元测试?

    我有一个托管 Eclipse 项目 它使用 GNU ARM 嵌入式工具链为 ST 微控制器进行编译 我现在想做的是 对该项目中的代码进行单元测试 我想用于单元测试的框架是Google Test 我尝试为单元测试创 建第二个 Eclipse
  • C++ for-each 语句触发“向量迭代器不兼容”断言失败:this->_Getcont() == 0

    这是使用 Visual Studio 2012 static void func const std vector
  • Oracle 数据更改通知超时和工作流程

    美好时光 我们在 Java 应用程序中配置了 Oracle DCN 功能 一切工作正常 但应用程序关闭时出现一些问题 如果应用程序意外关闭 例如 tomcat 进程通过kill 9命令 DCN 订阅者被挂在数据库中 select from
  • SQL服务器重复连接问题

    任何人都可以帮忙 我尝试加入重复的值 但它没有按我想要的方式出现 CREATE TABLE TestTable1 No varchar 50 Value1 float Desc varchar 50 insert into TestTabl
  • 使用 p/invoke 和 win-api 监控音频线路输入 (C#)

    在过去的几天里 我试图编写一个小程序来使用 win api winmm dll 来监视音频线路输入 我可以 pinvoke api 函数 例如 waveInOpen 但我不知道如何使用这些函数来实现我的目标 问题是 有人可以简单地告诉我如何
  • 动画 UITextView 时打字

    我试图拥有一个可变高度的 UITextView 它可以更改大小以适应其内容 但是当尺寸更改动画中的框架发生变化时 UITextView 中不会捕获一两次击键 动画持续时间为 0 1 秒 通常当您打字速度相当快时 它只会漏掉一个字母 然而 当
  • Python:相对导入是否意味着您无法单独执行子包?

    我最近将我的 Python 项目移植到 Python 3 1 上运行 为此 我必须在项目的子模块和子包中采用相对导入的策略 我没有这样做 现在项目本身可以工作 但我注意到我无法执行其中的任何子包或子模块 如果我尝试 我会收到 builtin
  • Highcharts 有“趋势线”功能吗?

    基本上 我试图让 Highcharts 自动绘制从第一个数据点到最后一个数据点的直线 以便我可以更轻松地看到 总体趋势 我相信这被称为 趋势线 或其他东西 但我在文档中没有找到与之相关的任何内容 不过 它很可能仍然具有此功能 可以 据我所知
  • iPhone - 保存 URL,无需 setURL:forKey: 和 NSURL

    无论如何 是否可以使用 NSUserDefaults 保存没有 setURL forKey 的 URL 这仅适用于 iOS 4 0 及更高版本 我使用 fileURLWithPath 在本地加载 HTML 文件 它从介绍页面开始 用户可以点
  • 如何从 onPress on Alert 函数调用方法 [React-Native]

    如何从 onPress on Alert 函数调用方法 React Native
  • java中特定货币的货币符号的位置

    我知道如何使用 locale 和 NumberFormat 类获取 java 中货币的货币对象和其他详细信息 但我无法在 API 中找到任何内容来了解 货币符号是在开始还是结束时显示 例如 在美国 10 表示 10 美元 其中 位于数字开头
  • 如何在 Trigger.io 上禁用“ipad 兼容性”?

    我需要我的应用程序只能在 iPhone 上运行 而不能在 iPAD 上运行 这个要怎么设置呢 我们在平台 v1 4 16 中提供了对此的支持 http docs trigger io en v1 4 release notes html v
  • 我可以检测 Android 设备上是否存在“LED 通知”吗?

    背景 我有一个带有通知的应用程序 我想支持 LED 通知 并且它运行良好 在我的偏好中 我允许用户自定义 LED 通知 问题 如果设备不支持 LED 自定义选项 我不想显示这些选项 因为这可能会让用户感到困惑 如果您拥有的只是廉价的 And
  • 为嵌套的 ScriptableObjects 构建编辑器以在纸牌游戏中组合能力

    我正在构建一款纸牌游戏 我希望有一个干净的纸牌能力架构 我有一个带有卡片属性的 CardData ScriptableObject 我希望卡牌能力组合在一起来描述卡牌的作用 比如一张名为绘制和治疗卡抽 2 张牌并在玩时恢复 5 点生命值 我
  • 类型稳定性如何让 Julia 如此之快?

    我听说类型稳定性使 Julia 如此之快 同时仍然与其他解释语言 例如 Python 一样具有表达能力 类型稳定性允许编译器在编译时直接根据输入类型确定函数的输出类型 因为 Julia 专门针对每种输入类型进行编译 这意味着如果所有函数都是
  • HtmlUnit无法获取IFRAME添加的js/ajax

    我刚刚开始学习htmlunit http htmlunit sourceforge net by gargoylesoftware 我有一个问题 页面上有一个 iframe 单击按钮后会出现该 iframe 当我尝试按名称获取此 ifram
  • 使用 MockMVC 测试 Spring MVC 请求参数映射和 MultipartFile

    我正在尝试使用 Spring MVC 3 2 创建一个 RESTful 控制器端点来上传文件以及该文件的元数据映射 定义如下 Controller RequestMapping file public class FileServiceCo
  • 如何在scala中使用相对路径读取文本文件

    我有一个用 scala 编写的简单 mvn 项目 我想访问一个文本文件并读取其内容 该代码工作正常 但唯一的问题是我在读取文本文件时给出了绝对路径 以下是我的项目的目录结构 如何使用相对路径来读取该文件 我是否必须将 movie txt 文
  • Service 或 IntentService 或 AlarmManager 方法

    我正在构建一个类似游戏的应用程序 并且我一直在阅读有关在后台 前台 警报等中使用服务运行事物的所有不同方法 我有点困惑 我的应用程序会像这样 示例 用户按下 Main 中的按钮 然后他可以关闭应用程序 30 分钟后 Activity1 打开