请教android如何做到service常驻内存

 我来答
huanglenzhi
2015-01-13 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517201
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

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

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

  接下来,我们只需要在应用程序配置文件AndroidManifest.xml中注册这个Receiver来监听系统启动事件即可,如下所示:
<receiver android:name=".service.BootReceiver">

  <intent-filter>
  <!-- 系统启动完成后会调用-->
  <action android:name="android.intent.action.BOOT_COMPLETED">
  </action>
  </intent-filter>
  </receiver>
zxh4567
推荐于2016-01-16 · TA获得超过6.1万个赞
知道大有可为答主
回答量:2.2万
采纳率:83%
帮助的人:1.3亿
展开全部
 android实现开机自启动可能是移动操作系统中最简单的了,我们只需要监听一个开机启动的Broadcast(广播)即可。首先写一个Receiver(即广播监听器),继承BroadcastReceiver,如下所示:

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

  接下来,我们只需要在应用程序配置文件AndroidManifest.xml中注册这个Receiver来监听系统启动事件即可,如下所示:
<receiver android:name=".service.BootReceiver">

  <intent-filter>
  <!-- 系统启动完成后会调用-->
  <action android:name="android.intent.action.BOOT_COMPLETED">
  </action>
  </intent-filter>
  </receiver>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式