- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我需要让我的服务始终在后台运行。并使用“startService()”函数启动我的服务。无论应用程序的状态如何,我都不想重新启动服务。
这是我的观察。
START_STICKY > 如果应用程序启动,服务正在重新启动。当应用程序关闭时,服务也会自行重启。
START_NOT_STICK > 应用程序关闭后服务无法工作。
我需要一个始终运行的服务,它会在应用程序启动时接收广播。服务状态不得取决于应用程序是否正在运行。
你能帮帮我吗?
谢谢。
最佳答案
您需要设置一个启动接收器,在设备启动时启动您的服务警报(它将间歇性唤醒并确保您的服务正在运行)。 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();
}
}
最后这需要进入您的 list :
<receiver android:name=".BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<receiver android:name=".AlarmReceiver" />
关于java - 安卓服务 START_STICKY START_NOT_STICKY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18387346/
我对 android 中的 START_NOT_STICKY 感到困惑。这里有两个问题: 我不需要为 START_NOT_STICKY 服务显式调用 stopself,因为它会在 onStartCom
我正在尝试使用以下方法阻止我的服务自行重启: @Override public int onStartCommand(Intent intent, int flags, int startId) {
我有一个在后台运行的服务。如果系统在内存不足的情况下终止此服务也没关系,但是,我不希望系统重新启动该服务。 因此,为了做到这一点,我从我的 onStartCommand 中返回了 START_NOT_
我需要让我的服务始终在后台运行。并使用“startService()”函数启动我的服务。无论应用程序的状态如何,我都不想重新启动服务。 这是我的观察。 START_STICKY > 如果应用程序启动,
START_STICKY 和有什么区别?和 START_NOT_STICKY在android中实现服务时?谁能指出一些标准的例子..? 最佳答案 这两个代码仅在手机内存不足并在服务完成执行之前终止服务
我的应用程序使用了一种模式,我使用 Context#startService() 启动服务以及使用 Context#bindService() 绑定(bind)到它.这样我就可以独立于当前是否有任何客
我看不懂 START_STICKY, START_NOT_STICKY 和 START_REDELIVER_INTENT 谁能用例子解释清楚。 我通过了this链接,但无法清楚地理解它。 最佳答案 这
我是一名优秀的程序员,十分优秀!