在 Android 中,Foreground Service 是一种能够在前台持续运行的 Service,通常用于执行一些需要在后台长时间运行的任务,如播放音乐或下载文件等。下面是一个 Kotlin 语言编写的 Foreground Service 示例代码:
class MyForegroundService : Service() {
companion object {
const val NOTIFICATION_ID = 1
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
val input = intent?.getStringExtra("inputExtra")
val notificationIntent = Intent(this, MainActivity::class.java)
val pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0)
val notification = NotificationCompat.Builder(this, "CHANNEL_ID")
.setContentTitle("Foreground Service Example")
.setContentText(input)
.setSmallIcon(R.drawable.ic_launcher_foreground)
.setContentIntent(pendingIntent)
.build()
startForeground(NOTIFICATION_ID, notification)
// 假装我们正在执行一个长时间运行的任务
// 实际中你应该在这里编写自己的逻辑代码
for (i in 0 until 5) {
Log.d("ForegroundService", "Task running $i")
Thread.sleep(1000)
stopForeground(true)
stopSelf()
return START_NOT_STICKY
override fun onBind(intent: Intent?): IBinder? {
return null
在这个示例中,我们首先定义了一个继承自 Service 的 MyForegroundService 类。在 onStartCommand 方法中,我们接收到了一个传入的 intent,其中包含了一个 inputExtra 的字符串参数。然后,我们通过 NotificationCompat.Builder 构建了一个通知栏通知,其中包含了 inputExtra 参数的文本。接下来,我们调用了 startForeground 方法,将该 Service 设为前台 Service,并将通知栏通知与该 Service 绑定。在实际运行中,该 Service 会执行一个模拟长时间运行的任务,这里使用了 Thread.sleep 模拟任务的延迟。最后,我们在任务完成后调用了 stopForeground 和 stopSelf 方法,将该 Service 结束。
当你需要在 Android 应用中实现长时间运行的任务时,可以考虑使用 Foreground Service。通过将 Service 设为前台 Service 并绑定通知栏通知,可以避免该 Service 因为系统资源不足而被系统强制关闭。