- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to set a Timeout for an AsyncTask in Kotlin Android?
This example demonstrates how to set a Timeout for an AsyncTask in 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"?> <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" android:padding="16dp" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="50dp" android:text="Tutorials Point" android:textAlignment="center" android:textColor="@android:color/holo_green_dark" android:textSize="32sp" android:textStyle="bold" /> <EditText android:id="@+id/enterTime" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_marginTop="50dp" android:background="@android:drawable/editbox_background" android:inputType="number" /> <Button android:id="@+id/btnRun" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/enterTime" android:layout_centerHorizontal="true" android:layout_marginTop="10dp" android:text="Run Async task" /> </RelativeLayout>
Step 3 − Add the following code to src/MainActivity.kt
import android.app.ProgressDialog import android.os.AsyncTask import android.os.Bundle import android.view.View import android.widget.Button import android.widget.EditText import android.widget.Toast import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { var button: Button? = null var editTextTime: EditText? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) title = "KotlinApp" button = findViewById(R.id.btnRun) editTextTime = findViewById(R.id.enterTime) button?.setOnClickListener(View.OnClickListener { val runner = AsyncTaskRunner() val sleepTime = editTextTime?.text.toString() runner.execute(sleepTime) }) } @Suppress("DEPRECATION") private inner class AsyncTaskRunner : AsyncTask<String?, String?, String?>() { var progressDialog: ProgressDialog? = null override fun doInBackground(vararg params: String?): String? { publishProgress("AsyncTask started...") val time = params[0]!!.toInt() * 1000 Thread.sleep(time.toLong()) return "Slept for " + params[0] + " seconds" } override fun onPostExecute(result: String?) { progressDialog!!.dismiss() Toast.makeText(this@MainActivity, "AsyncTask Terminated", Toast.LENGTH_SHORT).show() } override fun onPreExecute() { progressDialog = ProgressDialog.show( this@MainActivity, "ProgressDialog", "Wait for " + editTextTime!!.text.toString() + " seconds" ) } override fun onProgressUpdate(vararg values: String?) { Toast.makeText(this@MainActivity, "" + values[0], Toast.LENGTH_SHORT).show() } } }
Step 4 − 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="app.com.kotlipapp"> <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 set a Timeout for an AsyncTask in Android?
- How to cancel an executing AsyncTask in Android?
- How to stop asynctask thread in Kotlin?
- How to stop AsyncTask thread in android?
- How to set a timer in Android using Kotlin?
- How to set margins in an Android LinearLayout programmatically using Kotlin?
- How to set a particular font for a button text in Android using Kotlin?
- How to set only numeric values for edittext in Android using Kotlin?
- How to overlay two images in Android to set an imageview using Kotlin?
- How do we set the input type for an Android EditText programmatically using Kotlin?
- How to set timeout to pyplot.show() in Matplotlib?
- How to set the ringtone in Android from Android activity using Kotlin?
- How to Set Wget Connection Timeout in Linux?
- How do I return a boolean from AsyncTask in Android?
- How to set the Android wallpaper image programmatically in Kotlin
