永发信息网

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

答案:3  悬赏:20  手机版
解决时间 2021-02-07 05:23
请教android如何做到service常驻内存
最佳答案
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>
全部回答
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>
你可以在service的ondestroy里面再次启动,或者监听手机屏幕变化,只要操作手机你就再次启动服务
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中国移动(金大众营业厅)地址有知道的么?有点
新胜达食品商行在什么地方啊,我要过去处理事
#羽毛球#扣球犯规不??
欧洲“火星快车”探测器和美国的“勇气”号和
2oo1中国人民银行1元硬币有价值吗
峡岗村地址在什么地方,想过去办事
中国移动天津师大动感地带体验店(体验店)店
构成生物体大分子基本骨架是CA. 基本单元B.
烫卷发,烫发后不理想怎么办?(麻烦各位网友
中国移动(兰指定专营店)地址在什么地方,想过
龙安食府地址在哪,我要去那里办事
回答 已处理 《甄嬛传》中,佩儿刚开始不是刁
我妈妈的助听器,为什么效果不好?是在专业的
中国电信(海泰营业厅)地址在什么地方,我要处
【曲苑风荷】曲院风荷中的“曲”是错别字吗?
推荐资讯
右图中甲地位于低气压中心,读图回答16~17题
牛埠镇,土桥乡有没有圆通快递和天天快递
1340的号码是中国移动还是联通的 另外它分属
长沙市畜禽水产品质量检测中心地址有知道的么
90平米房用壁挂炉24kw一个月需要多少钱
仁和集农场这个地址在什么地方,我要处理点事
consider to be doing 是一个怎样的用法?
凤凰卫视天气预报伴凑音乐是什么?
诗悦美发连锁(通安店)地址好找么,我有些事要
烟台哪里有卖补漆笔的。
杰盛电脑地址有知道的么?有点事想过去
QQ上收到大白符号(●—●),表示什么含义
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?