首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

9.服务

服务的分类 本地服务:指的是服务和启动服务的activity在同一个进程中 远程服务:指的是服务和启动服务的activity不在同一个进程中 远程服务只能隐式启动,类似隐式启动Activity,在清单文件中配置...因此,获取一个 AlarmManager的实例就可以写成: AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE...manager =(AlarmManager) getSystemService(ALARM_SERVICE); int anHour =60*60*1000;// 这是一小时的毫秒数 long triggerAtTime...因为一旦启动 LongRunningService,就会在onStartCommand()方法里设定一个定时任务,这样一小时后 AlarmReceiver的 onReceive()方法就将得到执行,然后在这里再次启动...LongRunningService,这样就形成了一个永久的循环,保证 LongRunningService可以每隔一小时就会启动一次,一个长期在后台定时运行的服务自然也就完成了。

826110
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    笔记58 | Android闹钟

    Note:对于那些需要确保在应用使用期之内发生的定时操作,可以使用闹钟替代使用Handler结合Timer与Thread的方法。因为它可以让Android系统更好地统筹系统资源。...因此如之前所述,对于网络请求,我们需要为闹钟的触发时机增加随机性。 尽量避免让闹钟基于时钟时间。 想要在某一个精确时刻触发重复闹钟是比较困难的。我们应该尽可能使用ELAPSED_REALTIME。...具体步骤如下: 1.在应用的Manifest文件中设置RECEIVEBOOTCMPLETED权限,这将允许你的应用接收系统启动完成后发出的ACTIONBOOTCOMPLETED广播(只有在用户至少将你的应用启动了一次后...,它将一直保持启动状态,即使用户重启了设备也不例外。...接收器将保持启动状态,直到你的应用将其禁用。

    1.6K30

    腾讯视频国际版(Android)电量测试方法研究与总结

    缺陷:此方法只能测试整个手机的电流,不能区分APP,受影响的因素多,如屏幕亮度大小、音量大小等等,要保证每次测试的环境完全一致是不可能的。 ?...Android为了方便开发人员分析整个系统平台和某个app在运行一段时间之内的所有信息,专门开发了bugreport工具。...可以通过获取一小时内的电量数据来分析用户在每小时的唤醒次数。...接下来采用battery historian分析工具对手机里获取的bugreport文件进行分析,统计app中持有超过一小时的wack_lock和一小时内发生的wackup数。...场景启动APP播放退出播放,前台静置结论启动过程需加载图片等资源,电流较大,正常播放过程电流平稳无异常退出播放电流变小,静置过程平稳无异常 2.

    3.3K31

    边开发边测试--故事从闹钟讲起

    (3)AlarmManager.RTC表示闹钟在睡眠状态下,这种类型的闹铃不会唤醒系统。...表示闹钟时间到时系统会触发这个PendingIntent所代表的事件(如启动服务/activity/发广播) 然而需要注意的是,如果是通过启动服务来实现闹钟提示的话,PendingIntent对象的获取就应该采用...:与pendingIntent相关,该intent被实例化后,可以发送广播,启动服务,或者启动Activity,说白了就是唤醒应用的操作。...:alarm被触发,则启动该服务,服务实例位置在{}中声明 如果触发的是广播,则格式如: android +4m51s566ms running, 281 wakeups: +2m46s583ms...其中alarm可以set为目标时间之前(如提早5分钟); 当闹钟生效之后,会复查当前时间是否正常处于目标时间之前(如五分钟之内),并换用handler的sendMessageDelayed来设置闹钟时间

    1.7K90

    Tip | Android的Service相关知识提炼

    在对应的场景(如某个View的回调方法中), 利用Intent可实现Service的启动: Intent intent = new Intent(this, MyService.class);//...启动方法同普通Service,即在对应的场景(如某个View的回调方法中)编写: Intent intent = new Intent(this, MyService.class);// MyService...下面学习AlarmManager系统服务,实现一个后台定时任务 调用AlarmManager的set()方法就可以设置一个定时任务, set()有三个参数(工作类型,定时任务触发的时间,PendingIntent...如果一定要求Alarm任务的执行时间精确, 把AlarmManager的setExact()方法替代set()方法就可以了。...在对应的场景(如某个View的回调方法中), 利用Intent可实现Service的启动,同普通Service: ?

    65150

    【Android开发高级系列】进程保活专题

    Force-Stop后收不到静态广播,也就是说4.0以后,如果我们应用从未启动过,或者被Force-Stop杀死过,是无法接收到静态广播的。         ...KeeLiveService.class);         context.startService(i);    } } 2.6 监听第三方应用的静态广播 思路:         通过反编译第三方 Top 应用,如:...2.7 AlarmManager唤醒 思路:通过AlarmManager设置一个定时器,定时的唤醒服务     **保活强度:**killBackgroundProcess下,大部分情况work,     ...系统服务    AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);    ...          alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), timeMillis,pendingIntent

    67130

    Android性能优化相关的10个经典面试题

    如何优化Android应用的启动速度? 答案: 懒加载:延迟非必需组件的初始化,直到真正需要它们时才进行加载。...优化代码:减少onCreate中的初始化代码,使用工具如ProGuard来移除无用的代码。...使用原生库:使用BoostMultiDex等技术减少应用在低版本Android上的启动时间。 2. 解释Android中的内存泄漏是什么?如何检测和解决?...减少Overdraw:使用工具如Hierarchy Viewer来检测和减少过度绘制。 5. 在Android中,如何优化网络请求的性能?...使用AlarmManager:合理使用AlarmManager来计划任务,减少唤醒次数。 10. 在Android中,如何实现流畅的动画性能? 答案: 硬件加速:在动画中启用硬件加速。

    13610

    Android应用保活全攻略:30个实用技巧助你突破后台限制

    监听系统广播,如开机广播、网络变化广播、应用安装卸载广播等。当收到广播时,检查应用进程是否存活,如果已经被杀死,则重新启动应用。 4....当触发条件满足时,JobScheduler会启动应用。 5. 白名单 引导用户将应用加入系统的白名单,如省电白名单、自启动白名单等。加入白名单的应用不会受到系统的限制,可以在后台持续运行。 6....静态广播监听 在AndroidManifest.xml中注册静态广播,监听系统广播,如电池状态改变、屏幕解锁等。当收到广播时,检查应用进程是否存活,如果已经被杀死,则重新启动应用。...使用AlarmManager定时唤醒 使用AlarmManager定时唤醒应用。通过设置一个定时任务,当到达指定时间时,使用PendingIntent启动应用。...24 监听系统UI 监听系统UI的变化,如状态栏、导航栏等。当系统UI变化时,检查应用进程是否存活,如果已经被杀死,则重新启动应用。 25.

    1.8K21

    VMware的灾备与双活----我在vForum 2015分会场的分享(1)

    在过去几年中,全球各国经历过许多大范围的灾难,如海啸,地震等。这些是我们从新闻上得知的比较重大的示例,但同时还存在很多范围较小的中断示例,如数据中心断电、数据中心网络中断、主机故障等。...根据相关机构统计,媒体行业停机一小时的损失是6.9万美元;对于零售行业停机一小时的损失是11.3万美元; 对于金融行业的信用卡授权业务,停机一小时的损失停机一小时的损失高达645万美元....5.点击启动 ? 6.灾备切换开始,过一会,虚拟会在灾备站点重启。 ?...容灾站点的ESXi会在VC的指挥下挂接之前一直在做同步的LUN(与主站点做同步复制时这些LUN是无法被ESXi挂接的),然后启动受保护的VM。 ?...有一个真实的案例,可以说明客户如何在灾难发生之前,利用SRM将企业应用迁移走, 而使应用免受灾难造成业务损失。 客户两个站点分别位于日本两个城市。主生产在数据中心1,灾备站点在数据中心2。

    2.9K70

    美团动态线程池实践思路开源项目(DynamicTp),线程池源码解析及通知告警篇

    workerStarted) // 启动失败,workerCount--,workers里移除该worker addWorkerFailed...Thread类,而是定义了一个内部工作线程Worker类,实现了AQS以及Runnable接口,然后持有一个Thread类的引用及一个firstTask(创建后第一个要执行的任务),每个Worker线程启动后会执行...(dtpExecutor, REJECT); AlarmManager.triggerAlarm(dtpExecutor.getThreadPoolName(), REJECT.getValue...(this, RUN_TIMEOUT); AlarmManager.triggerAlarm(this.getThreadPoolName(), RUN_TIMEOUT.getValue...b360e0a129e4413b962b40f6ef415af2~tplv-k3u1fbpfcp-zoom-1.image] *** 告警通知相关配置项 如果想使用通知告警功能,配置文件必须要配置platforms字段,且可以配置多个平台,如钉钉

    1.1K71

    如何用 Android vitals 解决应用程序的质量问题

    在指定时间或间隔后唤醒设备的主要方法是使用 AlarmManager API 的 RTC_WAKEUP 或 ELAPSED_REALTIME_WAKEUP 标志来安排警报。...C) 持续性和自动重试 —— 任务可以持续执行(即使重新启动也可以),并且可以在发生故障时自动重试。 D) Doze 兼容性 —— 任务只有在不受 Doze 模式限制或应用程序待机时才会执行。...只有当消息推送和定期任务不适合你的工作时,你才应该使用 AlarmManager 安排唤醒警报。或者从另一个角度来看,只有当你需要在特定时间启动闹钟时才需要使用唤醒警报,无论网络或其他条件如何。...从应用程序开发的角度来看,当应用程序因为执行耗时操作(如磁盘或网络读写)阻塞主线程时,就会发生 ANR。主线程(有时称为 UI 线程)负责响应用户事件并刷新屏幕上每秒绘制六十次的内容。...在应用程序启动时使用 StrictMode#setThreadPolicy 可以自定义你想要检测的内容,包括磁盘和网络读写,甚至可以通过 StrictMode#noteSlowCall 在应用程序中触发自定义的慢速调用

    2.3K10

    Android-Widget重装上阵

    这个从Android 1.x就已经存在的功能,经历了近10年的迭代,在遭到无数无视和白眼之后,又重新回到了大家的视线之内,当然,也有可能是App内部已经没东西好卷了,所以大家又把目光放到了App之外,但不管怎样...前面我们提到了通过设置updatePeriodMillis来进行Widget的更新,但是这种方式存在一些使用限制,如果你需要完全自主的控制Widget的刷新,那么可以使用AlarmManager或者WorkManager...( AlarmManager.RTC_WAKEUP, nextUpdate.toInstant().toEpochMilli(), //...pendingIntent ) } } 当然,这种方式也同样会受到ROM的限制,所以说,不管是WorkManager还是AlarmManager...response.data.toString()) } } } } 所以,在AppWidgetProvider的update里面,就需要进行下修改,将原有逻辑改为对Service的启动

    1.3K32
    领券