Por que serviço de notificação não funciona se a Activity não estiver aberta?

Boa noite, eu fiz um APP e nele eu inicializo um serviço de alarme no onCreate…o serviço funciona…porém fiz alguns testes aqui e notei que só funciona quando a Activity está aberta, se eu por exemplo minimizar o APP, chega no momento em que o serviço deve ser executado e nada…alguém tem ideia do que possa estar acontecendo?

Código que inicializa o serviço:

lateinit var preferences: SharedPreferences

    @SuppressLint("ServiceCast")
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        preferences = getSharedPreferences("tk.thallyssonklein.kapp.notifications", MODE_PRIVATE)
        val alarmManager = getSystemService(Context.ALARM_SERVICE) as AlarmManager
        var id = 0
        for(mov in preferences.all){
            alarmManager.set(
                    AlarmManager.RTC_WAKEUP,
                    Calendar.getInstance().apply {
                        set(Calendar.HOUR_OF_DAY, 6)
                        set(Calendar.MINUTE, 0)
                        set(Calendar.SECOND, 0)
                    }.timeInMillis,
                    PendingIntent.getBroadcast(
                            applicationContext,
                            id,
                            Intent(applicationContext, AlarmBroadcastReceiver::class.java).apply {
                                putExtra("notificationId", id)
                                putExtra("ticker", "A morning exercise")
                                putExtra("title", mov.key)
                                putExtra("text", "Do this exercise now!")
                            },
                            PendingIntent.FLAG_CANCEL_CURRENT
                    )
            )
            ++id
        }
        getDataFromServer()
    }

Classe AlarmBroadcastReceiver:

package tk.thallyssonklein.kapp

/**
 * Created by thall on 14/01/2018.
 */
import android.app.Notification
import android.app.NotificationManager
import android.app.PendingIntent
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent

class AlarmBroadcastReceiver : BroadcastReceiver() {
    override fun onReceive(context: Context?, intent: Intent?) {
        (context?.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager).notify(
                intent!!.getIntExtra("notificationId", 0),
                Notification.Builder(context).apply {
                    setSmallIcon(tk.thallyssonklein.kapp.R.drawable.ic_stretching_exercises)
                    setContentTitle(intent.getStringExtra("title"))
                    setContentText(intent.getCharSequenceExtra("text"))
                    setWhen(System.currentTimeMillis())
                    setTicker(intent.getCharSequenceExtra("ticker"))
                    setPriority(Notification.PRIORITY_DEFAULT)
                    setAutoCancel(true)
                    setDefaults(Notification.DEFAULT_SOUND)
                    setContentIntent(PendingIntent.getActivity(context, 0, Intent(context, MainActivity::class.java), 0))
                }.build()
        )
    }
}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="tk.thallyssonklein.kapp">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <receiver android:name=".AlarmBroadcastReceiver" />
    </application>

</manifest>

Consegui resolver fazendo algumas alterações no AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="tk.thallyssonklein.kapp">

    <uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <receiver android:name=".AlarmBroadcastReceiver" android:process=":remote">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
            </intent-filter>
        </receiver>
    </application>

</manifest>

Agora está funcionando, só não sei se funciona mais de uma vez seguida, preciso testar, mas assim…o que eu achei estranho foi que mesmo eu fechando a aplicação e as notificações aparecendo, nenhum serviço do meu APP aparece na lista de serviços em funcionamento.