Java-Android服务START_STICKY START_NOT_STICKY

Java-Android服务START_STICKY START_NOT_STICKY,第1张

概述我需要使服务始终在后台运行.然后使用“startService()”函数启动我的服务.无论应用程序处于什么状态,我都不想重新启动服务.这是我的观察.START_STICKY>如果应用程序启动,服务将重新启动.当应用程序关闭时,服务也会重新启动.START_NOT_STICK>应用程序关闭后,该服务无法正常工

我需要使服务始终在后台运行.然后使用“ startService()”函数启动我的服务.无论应用程序处于什么状态,我都不想重新启动服务.

这是我的观察.

START_STICKY>如果应用程序启动,服务将重新启动.当应用程序关闭时,服务也会重新启动.

START_NOT_STICK>应用程序关闭后,该服务无法正常工作.

我需要一个始终运行的服务,它将在应用程序启动时接收广播.服务状态不取决于应用程序是否正在运行.

你能帮助我吗 ?

谢谢.

解决方法:

您将需要设置一个BOOT接收器,以在设备启动时启动服务警报(该警报将间歇性唤醒并确保您的服务正在运行). ALARM接收器应每分钟(或每分钟)醒来,以查看您的服务尚未被Android清除(有时会发生).

[编辑]

您需要一个BootReceiver来启动警报,该警报将如下所示:

public class BootReceiver extends broadcastReceiver {    @OverrIDe       public voID onReceive(Context context, Intent intent) {          AlarmManager alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);          PendingIntent pendingIntent =                   PendingIntent.getbroadcast(context, 0, new Intent(context, AlarmReceiver.class), 0);          alarmMgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 2000,  60000, pendingIntent);       }    }

而且alarmReceiver看起来像这样:

public class AlarmReceiver extends broadcastReceiver {    private String TAG = "AlarmReceiver";   // onReceive must be very quick and not block, so it just fires up a Service   @OverrIDe   public voID onReceive(Context context, Intent intent) {           Intent i = new Intent(context, MylovelyService.class);            PendingIntent.getService(context, 0,i, 0).send();       }}

最后,这需要进入您的清单:

<receiver androID:name=".BootReceiver">  <intent-filter>     <action androID:name="androID.intent.action.BOOT_COMPLETED" />  </intent-filter> </receiver> <receiver androID:name=".AlarmReceiver" />
总结

以上是内存溢出为你收集整理的Java-Android服务START_STICKY START_NOT_STICKY全部内容,希望文章能够帮你解决Java-Android服务START_STICKY START_NOT_STICKY所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1076157.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存