Giới thiệu
Ví dụ này minh họa cách hiển thị thông báo Toast từ một Thread nền (background thread) trong ứng dụng Android sử dụng Kotlin.
Các bước thực hiện
Bước 1: Tạo dự án mới
Mở Android Studio, chọn File → New Project, điền đầy đủ thông tin cần thiết để tạo dự án mới.
Bước 2: Thiết kế giao diện (res/layout/activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://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_centerInParent="true"
android:layout_marginTop="100dp"
android:text="Tutorials Point"
android:textAlignment="center"
android:textColor="@android:color/holo_green_dark"
android:textSize="32sp"
android:textStyle="bold" />
</RelativeLayout>
Bước 3: Viết code logic (src/MainActivity.kt)
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
private lateinit var toast: Toast
private lateinit var thread: Thread
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = "KotlinApp"
// Khởi tạo Toast
toast = Toast.makeText(this, "This is a toast from Thread", Toast.LENGTH_SHORT)
// Tạo và chạy Thread nền
thread = Thread(Runnable {
for (i in 0..999) {
try {
Thread.sleep(1000)
// Hiển thị Toast trên luồng UI
runOnUiThread { toast.show() }
Thread.sleep(1000)
} catch (e: InterruptedException) {
e.printStackTrace()
}
}
})
thread.start()
}
}
Lưu ý quan trọng: Toast phải được hiển thị trên luồng UI chính. Sử dụng runOnUiThread { toast.show() } hoặc Handler(Looper.getMainLooper()).post { toast.show() } để tránh crash.
Bước 4: Cấu hình AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="com.example.q11">
<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>
Chạy ứng dụng
Kết nối thiết bị Android thật với máy tính, nhấn biểu tượng Run trên thanh công cụ, chọn thiết bị và quan sát màn hình thiết bị hiển thị Toast định kỳ.