
- Android Basics
- Android - Home
- Android - Overview
- Android - Environment Setup
- Android - Architecture
- Android - Application Components
- Android - Hello World Example
- Android - Resources
- Android - Activities
- Android - Services
- Android - Broadcast Receivers
- Android - Content Providers
- Android - Fragments
- Android - Intents/Filters
- Android - User Interface
- Android - UI Layouts
- Android - UI Controls
- Android - Event Handling
- Android - Styles and Themes
- Android - Custom Components
- Android Advanced Concepts
- Android - Drag and Drop
- Android - Notifications
- Location Based Services
- Android - Sending Email
- Android - Sending SMS
- Android - Phone Calls
- Publishing Android Application
- Android Useful Examples
- Android - Alert Dialoges
- Android - Animations
- Android - Audio Capture
- Android - AudioManager
- Android - Auto Complete
- Android - Best Practices
- Android - Bluetooth
- Android - Camera
- Android - Clipboard
- Android - Custom Fonts
- Android - Data Backup
- Android - Developer Tools
- Android - Emulator
- Android - Facebook Integration
- Android - Gestures
- Android - Google Maps
- Android - Image Effects
- Android - ImageSwitcher
- Android - Internal Storage
- Android - JetPlayer
- Android - JSON Parser
- Android - Linkedin Integration
- Android - Loading Spinner
- Android - Localization
- Android - Login Screen
- Android - MediaPlayer
- Android - Multitouch
- Android - Navigation
- Android - Network Connection
- Android - NFC Guide
- Android - PHP/MySQL
- Android - Progress Circle
- Android - ProgressBar
- Android - Push Notification
- Android - RenderScript
- Android - RSS Reader
- Android - Screen Cast
- Android - SDK Manager
- Android - Sensors
- Android - Session Management
- Android - Shared Preferences
- Android - SIP Protocol
- Android - Spelling Checker
- Android - SQLite Database
- Android - Support Library
- Android - Testing
- Android - Text to Speech
- Android - TextureView
- Android - Twitter Integration
- Android - UI Design
- Android - UI Patterns
- Android - UI Testing
- Android - WebView Layout
- Android - Wi-Fi
- Android - Widgets
- Android - XML Parsers
- Android Useful Resources
- Android - Questions and Answers
- Android - Useful Resources
- Android - Discussion
How to send a notification from a service in Android using Kotlin?
This example demonstrates how to send a notification from a service in Android using Kotlin.
Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project.
Step 2 − Add the following code to res/layout/activity_main.xml.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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" android:orientation="vertical" tools:context=".MainActivity"> <EditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Input" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="startService" android:text="Start Service" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="stopService" android:text="Stop Service" /> </LinearLayout>
Step 3 − Add the following code to src/MainActivity.kt
import android.content.Intent import android.os.Bundle import android.view.View import android.widget.EditText import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat class MainActivity : AppCompatActivity() { lateinit var editText: EditText override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) title = "KotlinApp" editText = findViewById(R.id.editText) } fun startService(view: View) { val input: String = editText.text.toString() val serviceIntent = Intent(this, ExampleService::class.java) serviceIntent.putExtra("inputExtra", input) ContextCompat.startForegroundService(this, serviceIntent) } fun stopService(view: View) { val serviceIntent = Intent(this, ExampleService::class.java) stopService(serviceIntent) } }
Step 4 − Create a new class for service (ExampleService.kt) and add the following −
import android.app.* import android.content.Intent import android.os.Build import android.os.IBinder import androidx.annotation.RequiresApi import androidx.core.app.NotificationCompat class ExampleService : Service() { private val channelId = "Notification from Service" @RequiresApi(Build.VERSION_CODES.O) override fun onCreate() { super.onCreate() if (Build.VERSION.SDK_INT >= 26) { val channel = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { NotificationChannel( channelId, "Channel human readable title", NotificationManager.IMPORTANCE_DEFAULT ) } else { TODO("VERSION.SDK_INT < O") } (getSystemService(NOTIFICATION_SERVICE) as NotificationManager).createNotificationChannel( channel ) } } 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: Notification = NotificationCompat.Builder(this, channelId) .setContentTitle("Example Service") .setContentText(input) .setSmallIcon(R.drawable.notification) .setContentIntent(pendingIntent) .build() startForeground(1, notification) return START_NOT_STICKY } override fun onBind(p0: Intent?): IBinder? { return null } }
Step 5 − Add the following code to androidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.q11"> <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/> <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> </application> </manifest>
Let's try to run your application. I assume you have connected your actual Android Mobile device with your computer. To run the app from android studio, open one of your project's activity files and click the Run icon from the toolbar. Select your mobile device as an option and then check your mobile device which will display your default screen.
Click here to download the project code.
- Related Articles
- How to start a service from notification in Android?
- How to send a variable from Activity to Fragment in Android using Kotlin?
- How to send parameters from a notification-click to an Android activity?
- How to start Service using Alarmmanager in Kotlin Android?
- How to send HTML email using Android App using Kotlin?
- How to send an email with a file attachment in Android using Kotlin?
- How to send a SMS using SMSmanager in Dual SIM mobile in Android using Kotlin?
- How to start a Service at Boot Time in Android App using Kotlin?
- How can I send emails using gmail from my Android application using Kotlin?
- How to create a notification alert using Kotlin?
- Send a notification when the Android app is closed
- How can I send emails using gmail from my Android application using Kotlin Programming?
- How to communicate between Activity and Service in Android using Kotlin?
- How do I send an object from one Android Activity to another using Intents in Kotlin?
- How to send data back to the Main Activity in Android using Kotlin?
