通过调用使您Service
在前台运行startForeground
将向系统发出信号,表明您的服务的终止和/或垃圾收集将对用户造成破坏。这将阻止系统清理您的服务,除非由于系统资源低或功率低而绝对必须这样做。
要Service
在前台运行,您需要给它一个Notification
. 可以这样做:
Notification.Builder builder = new Notification.Builder(getApplicationContext());
builder.setSmallIcon(R.drawable.notification_icon);
builder.setContentTitle("Your notification text");
builder.setProgress(100, 0, true); /* 0 out of 100 progress to start */
builder.setAutoCancel(false);
builder.setOngoing(true);
Notification notification = builder.getNotification();
/* NOTIFICATION_ID can just be a static int to identify your service's notification */
startForeground(NOTIFICATION_ID, notification);
这是使用 startForeground 的一个非常基本的示例,但至少应该让您指向正确的方向。当您的操作完成后,您可以通过调用来向系统发出信号,表明您可以被收集stopForeground
。