Each Android application defines its main Application class. The Application class in Android is the base class within an Android application that contains all other components, such as activities and services. The Application class, or any subclass of the Application class, is instantiated before any other class when the process for your application/package is created.
We will create an Application class for Journaler. Locate the main sources directory. Expand it, and if there is no Kotlin sources directory, create it. Then, create the package com and subpackage journaler; to do so, right-click on the Kotlin directory and choose New | Package. Once you've created the package structure, right-click on the journaler package and choose New | KotlinFile/Class. Name it Journaler. Journaler.kt is created.
Each Application class must extend the Android Application class as shown in our example:
package com.journaler import android.app.Application import android.content.Context class Journaler : Application() { companion object { var ctx: Context? = null } override fun onCreate() { super.onCreate() ctx = applicationContext } }
For now, our main Application class will provide us with static access to application context. What this context is will be explained later. However, Android will not use this class until it's mentioned in manifest. Open the app module android manifest and add the following block of code:
<manifest xmlns:android="http://schemas.android.com/apk/
res/android" package="com.journaler"> <application android:name=".Journaler" android:allowBackup="false" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> </application> </manifest>
With android:name=".Journaler", we tell Android which class to use.