IntentService 不会启动使用 AlarmManager

2023-11-27

我知道对此有很多疑问,但我真的不知道我的错误在哪里。

我的服务注册在AndroidManifest.xml文件中

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.app" >
        ...
        <service android:name="com.example.android.app.ScheduledService">
        </service>
    </application>
</manifest>

我的服务扩展了 IntentService

public class ScheduledService extends IntentService {
    public ScheduledService() {
        super("ScheduledService");
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        Log.d(getClass().getSimpleName(), "I ran!");
    }
}

我的 Activity 启动服务

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Log.d(getClass().getSimpleName(), "Setting alarm!!");

        AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

        Intent alarmIntent = new Intent(this, com.example.android.app.ScheduledService.class);
        PendingIntent pending = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);

        alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                SystemClock.elapsedRealtime() +
                        10 * 1000, pending);
    }
}

我在日志中没有看到任何异常。我还应该做些什么来设置闹钟吗?


As in 文档, PendingIntent.getBroadcast()用于检索PendingIntent将执行广播,例如调用Context.sendBroadcast().

你需要打电话PendingIntent.getService()相反,它将开始IntentService:

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

IntentService 不会启动使用 AlarmManager 的相关文章

随机推荐

  • 传递二维数组作为参数

    我正在尝试将二维数组传递给接受指向指针的指针的函数 我了解到二维数组并不是指向指针的指针 指向一维数组的指针 当我编译下面的代码时 我收到了这个错误 include
  • 如何在 Chrome 控制台中包含 JavaScript 文件或库?

    是否有更简单 也许是本机 的方法来在 Google Chrome 浏览器中包含外部脚本文件 目前我正在这样做 document head innerHTML appendChild 是一种更原生的方式 var script document
  • 如何将多线程应用于反向传播神经网络训练?

    在我的大学项目中 我正在创建一个神经网络 可以对信用卡交易欺诈与否的可能性进行分类 我正在用反向传播进行训练 我正在用 Java 写这个 我想应用多线程 因为我的电脑是四核i7 花几个小时训练却发现我的大部分核心都闲置 这让我很烦恼 但是我
  • 如何检查解密是否正确?

    我正在开发一个聊天室 为多个用户加密消息 每个用户可能有不同的加密和密钥 密码 因此 用户的密钥不适用于所有消息 返回错误 var message secret message var encrypted CryptoJS AES encr
  • 使用带有导航抽屉的 ViewPager 的操作栏选项卡

    要求 使用带有导航抽屉的 ViewPager 的操作栏选项卡 我可以创建一个导航抽屉示例 单独使用 ViewPager 的操作栏选项卡 但是当我尝试同时使用两者时 我遇到了问题 我可以使用片段创建导航抽屉 并使用片段创建操作栏选项卡 但这两
  • 在 python3 中合并异步迭代

    有没有一个好的方法 或者一个支持良好的库 用于在 python3 中合并异步迭代器 期望的行为与在reactivex中合并可观察量的行为基本相同 也就是说 在正常情况下 如果我合并两个异步迭代器 我希望生成的异步迭代器按时间顺序产生结果 迭
  • WPF 中的 Thread.CurrentPrincipal.Identity.Name 为空

    EDIT 简单的问题是 我怎样才能得到Thread CurrentPrincipal Identity Name让当前用户登录WPF END EDIT 我正在尝试调用一个现有方法 不在任何类型的服务中 只是 POCO 中的一个方法 来检索当
  • Java 开源调查/问卷引擎 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 是否有一个允许问题分支的 Java 开源调查引擎 即问题 1 有 A B 或 C 选项 每个选项都会带您进入一组不同的后续问题 我找到了几个 JSurveyLib 和 Socrate
  • 基于嵌入文档计数的 MongoDB 查询

    假设我有 Order id items 如何过滤商品编号大于5的订单 您无法按嵌入集合的大小进行查询 您需要创建具有集合大小的字段以满足此类需求 mongo db 文档 size 运算符匹配任何数组 具有指定数量的元素 以下示例将匹配 对象
  • 当 ContentControl.Content 更改时开始动画

    我试图在 Button 或 ContentControl 等内容控件更改其内容时触发动画 我最初的想法是这样做
  • 如何在 Spyder 中显示图表

    自 2015 年 11 月起 plotly 开源并可用于 python https plot ly javascript open source announcement 当尝试离线绘制一些图时 这些可以在 iPython Notebook
  • 在代码隐藏中使用资源图像

    我需要动态更改应用于我的按钮之一的背景图像 但不知道如何操作 图像将添加到项目中 并将其 构建操作 设置为 资源 我已经尝试过以下操作 buttonUnits Background new ImageBrush new BitmapImag
  • 我们可以将 Firebase 实时数据库与核心 PHP 一起使用吗?

    我有一个 Android 应用程序 后端代码位于使用 MySql 的核心 PHP 中 有没有办法像我们在 MySql 上执行的方式直接从 API 执行 CRUD 操作 如果它是一个网络应用程序 可以使用 javascript 来完成 但是我
  • 使用 TextInputLayout 时更改 EditText 提示颜色

    我正在使用新的TextInputLayout来自设计库 我能够让它显示并更改浮动标签的颜色 不幸的是实际EditText提示现在始终为白色 我尝试过以编程方式更改 XML 样式中的hintColor 还尝试使用android support
  • 超出纳秒时间戳范围

    我在 Googlespeedsheet 中有一个变量 date hiring 格式如下 16 01 2016 我在Python中导入它 该变量有一个对象类型 我尝试转换为日期时间 from datetime import datetime
  • html或css中指定图像大小的区别

    这个链接非常接近我的问题 但似乎更适用于语法而不是实际渲染的输出 我看到图像的高度和宽度可以在实际的html中定义img标签 事实上我读它的方式should在那里定义 然而 我想知道当实际涉及到图像的显示方式时 什么才是重要的 如果我插入以
  • 分配新块时如何控制“std::deque”的块大小?

    当我们向a中插入一个新元素时std deque 如果现有的块都已满 它可能会分配一个新的块来包含该元素 然而 实现如何控制块大小呢 用户是否可以控制块大小 或者它仅取决于实现的选择 例如4K 还是 8K 这是实现的选定值 无法对其进行控制
  • 在系统分区写入文件

    我正在尝试将我的应用程序生成的文件写入系统分区 由于我无法在应用程序中创建 FileOutputStream 因此我在应用程序的数据目录中创建文件 更正权限 然后将其移动到系统分区 目前 下面的代码错过了 system 的可写重新安装 出于
  • 在命令行中将环境变量传递给java类

    我需要从本地文件中读取一些属性etc myconfig config 文件夹 我需要在命令行中给出这个文件路径 我已经给出了如下所述 但出现错误 显示如下 Error Could not find or load main class te
  • IntentService 不会启动使用 AlarmManager

    我知道对此有很多疑问 但我真的不知道我的错误在哪里 我的服务注册在AndroidManifest xml文件中