如果您在开发一个需要实时更新数据的应用程序,当有新的数据的时候提醒用户查看新的数据,那么您需要在后台开起一个Service,然后实时的去网 络上获取数据,但是如果用户关机重启,您的Service可能就消失了!那么怎么样保证开机后你的Service还活跃的在用户的手机里偷偷的从网络上获 取数据呢?

很简单,我们只要实现开机自启动即可,android实现开机自启动可能是移动操作系统中最简单的了,我们只需要监听一个开机启动的 Broadcast(广播)即可。首先写一个Receiver(即广播监听器),继承BroadcastReceiver,如下所示:

[代码] BootReceiver.java

view source print?
01 public class BootReceiver extends BroadcastReceiver {
02 private PendingIntent mAlarmSender;
03 @Override
04 public void onReceive(Context context, Intent intent) {
05 // 在这里干你想干的事(启动一个Service,Activity等),本例是启动一个定时调度程序,每30分钟启动一个Service去更新数据
06 mAlarmSender = PendingIntent.getService(context, 0, new Intent(context,
07 RefreshDataService.class), 0);
08 long firstTime = SystemClock.elapsedRealtime();
09 AlarmManager am = (AlarmManager) context
10 .getSystemService(Activity.ALARM_SERVICE);
11 am.cancel(mAlarmSender);
12 am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime,
13 30 * 60 * 1000, mAlarmSender);
14 }
15 }

[代码] 我们只需要在应用程序配置文件AndroidManifest.xml中注册这个Receiver来监听系统启动事件

view source print?
1 <receiver android:name=".service.BootReceiver">
2 <intent-filter>
3 <!-- 系统启动完成后会调用-->
4 <action android:name="android.intent.action.BOOT_COMPLETED">
5 </action>
6 </intent-filter>
7 </receiver>

转载于:https://www.cnblogs.com/tuncaysanli/archive/2012/04/24/2468985.html

实现 Android 应用在开机时自启动相关推荐

  1. Android监听开机广播自启动程序

    应用开机自启动的原理是监听开机广播android.intent.action.BOOT_COMPLETED, 监听到该广播时会启动进程,进入Application 1.在Manifest中声明广播 & ...

  2. 关闭计算机启动程序,电脑开机时自启动程序烦人,教你用系统自带程序关闭它!...

    电脑每次开启的时候会有一些应用程序也跟着自动启动,占用着电脑系统资源.有时候我们并不需要这些程序开启,那么我们如何关闭这些的开机自动启动项呢?这时,有装一些第三方安全管理软件的可以利用它们来管理,但这 ...

  3. Android应用如何开机自启动、自启动失败原因

    2019独角兽企业重金招聘Python工程师标准>>> Android应用如何开机自启动.自启动失败原因 本文主要介绍Android应用如何开机自启动.自启动失败的原因.adb命令发 ...

  4. 从源码角度看Android系统Launcher在开机时的启动过程

    Launcher是Android所有应用的入口,用来显示系统中已经安装的应用程序图标. Launcher本身也是一个App,一个提供桌面显示的App,但它与普通App有如下不同: Launcher是所 ...

  5. 禁止开机时软件自启动的三种方法

    禁止开机时软件自启动的三种方法 目前常用的方法一般有三种:用软件禁止:用Windows命令禁止:直接修改注册表.那么就让我们分别来看一下. 一.使用软件禁止软件的自动启动 现在有很多的软件可以禁止开机 ...

  6. Android开机时长优化

    文章目录 一.背景说明 二.开机流程介绍 三.分析方法&工具 3.1 手动秒表计时 3.2 bootchart 3.2.1 生成log文件 3.2.2 生成bootchart.png 3.2. ...

  7. Unix 开机时如何自启动oracle

    下面介绍如何在开机时自动启动ORACLE 在/etc/init.d下建立dbora #!/bin/sh ORA_HOME=/u01/app/oracle/product/8.1.7 ORA_OWNER ...

  8. Android功耗(16)---自启动管理

    Android性能优化 -- 自启动管理 自启动管理简介 Android手机上安装的很多应用都会自启动,占用资源越来越多,造成系统卡顿等现象.良好的自启动管理方案管理后台自启动和开机自启动,这样就可以 ...

  9. Android系统的开机画面显示过程分析(13)

          WindowManagerService类的成员函数performEnableScreen的实现如下所示: public class WindowManagerService extend ...

最新文章

  1. MySQL性能测试工具 mysqlslap
  2. qt designer启动后不显示界面问题的原因与解决办法
  3. 分库分表技术演进最佳实践-修订篇
  4. 机器视觉:工业线阵相机与面阵相机特点分析
  5. 打开Excel显示:新建EXCEL文件格式和扩展名不匹配(原因+解决办法)
  6. lodop打印不显示页码_Excel|13个Excel打印技巧汇总,打印技巧大全
  7. ZZUOJ 1199 大小关系(拓扑排序,两种方法_判断入度和dfs回路判断)
  8. mysql字段简索引_3万字总结,Mysql优化之精髓
  9. Redis Cluster部署、管理和测试
  10. MySQL的position值是什么_MySQL数据库中系统函数POSITION功能简介
  11. SQL结构化数据查询语言培训讲义
  12. 模长,方向余弦,方向角、单位向量和方向导数的计算
  13. Kanban in Action 免积分下载
  14. python3.7如何改中文_Python 3.7切回3.6-Go语言中文社区
  15. python使用爬虫写一个自己的翻译器(带图像界面)
  16. 自从上了K8S,项目更新都不带停机的!
  17. Android 源码编译及真机刷机实录
  18. 计算机专业名称bios翻译,电脑BIOS中英文对照翻译有哪些?
  19. 网络测速linux,Linux系统下的网络带宽测速
  20. 如何完整卸载magento

热门文章

  1. Hibernate Shards 数据的水平、垂直切割(二)- Hibernate Shards基本演示
  2. Deno 兼容浏览器具体指的是什么?
  3. react与jQuery对比,有空的时候再翻译一下
  4. ArcGIS Server 开发之鹰眼地图的实现
  5. ALSM_EXCEL_TO_INTERNAL_TABLE
  6. “MIDI机器狗”的木马正在疯狂传播
  7. HDOJ1540 - Tunnel Warfare 线段树区间合并
  8. [RN] 全国城市列表选择 (包含定位城市、热门城市、全国城市)
  9. Uva5009 Error Curves
  10. TP v5中环境变量在项目中的应用