How to run Background Service in Android Studio using Kotlin.
Background services in Android. Learn what services are and how to implement them in Android with tutorials on rrtutors.com. Start coding today!
Last updated Dec 18, 2021 In this android example, we will see how to run a Background Service in Android Studio by using Kotlin Language.
Implementation:
Step 1: Create a new Project in android studio.
Go to File > New > New Project > Empty Activity > Next > Enter Name > Select Language Kotlin > Finish
|
Step 2: Go to activity_main.xml file and add the following code
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:text="RRTUTORS"
android:textAlignment="center"
android:textColor="@color/purple_500"
android:textSize="32sp"
android:textStyle="bold" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Start Background Service"
android:textSize="16sp"
android:textStyle="bold" />
</RelativeLayout>
|
Step 3: Create a new kotlin file.
app > new > Kotlin File(Class) > Enter Name(MyService) > Enter
|
Step 4: Open MyService.kt file and add the following code.
class MyService : Service() {
override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
onTaskRemoved(intent)
Toast.makeText(
applicationContext, "This is a Service running in Background",
Toast.LENGTH_SHORT
).show()
return START_STICKY
}
override fun onBind(intent: Intent): IBinder? {
// TODO: Return the communication channel to the service.
throw UnsupportedOperationException("Not yet implemented")
}
override fun onTaskRemoved(rootIntent: Intent) {
val restartServiceIntent = Intent(applicationContext, this.javaClass)
restartServiceIntent.setPackage(packageName)
startService(restartServiceIntent)
super.onTaskRemoved(rootIntent)
}
}
|
Step 5: Add following code in AndroidManifest.xml file inside tag.
<service
android:name=".MyService"
android:enabled="true"
android:exported="true" />
|
Step 6: Open MainActivity.kt file and add the following code below setContentView(R.layout.activity_main).
val button: Button = findViewById(R.id.button)
button.setOnClickListener {
startService(Intent(applicationContext, MyService::class.java))
|
Step 7: Run the app on emulator or real device, you will get the output as following in video
Complete Source Code of Run Background Service Example
activity_main.xml file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:text="RRTUTORS"
android:textAlignment="center"
android:textColor="@color/purple_500"
android:textSize="32sp"
android:textStyle="bold" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Start Background Service"
android:textSize="16sp"
android:textStyle="bold" />
</RelativeLayout>
|
MainActivity.kt file
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
class ServiceActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button: Button = findViewById(R.id.button)
button.setOnClickListener {
startService(Intent(applicationContext, MyService::class.java)) }
}
}
|
MyService.kt file
import android.app.Service
import android.content.Intent
import android.os.IBinder
import android.widget.Toast
class MyService : Service() {
override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
onTaskRemoved(intent)
Toast.makeText(
applicationContext, "This is a Service running in Background",
Toast.LENGTH_SHORT
).show()
return START_STICKY
}
override fun onBind(intent: Intent): IBinder? {
// TODO: Return the communication channel to the service.
throw UnsupportedOperationException("Not yet implemented")
}
override fun onTaskRemoved(rootIntent: Intent) {
val restartServiceIntent = Intent(applicationContext, this.javaClass)
restartServiceIntent.setPackage(packageName)
startService(restartServiceIntent)
super.onTaskRemoved(rootIntent)
}
}
|
Conclusion: In this android example we have covered how to run a background service in Android Studio by using Kotlin Language.