অ্যান্ড্রয়েডে থ্রেড থেকে টোস্ট মেসেজ দেখানো
এই উদাহরণটি দেখায় কীভাবে একটি ব্যাকগ্রাউন্ড থ্রেড থেকে UI থ্রেডে টোস্ট মেসেজ প্রদর্শন করা যায়। অ্যান্ড্রয়েডে শুধুমাত্র UI থ্রেড থেকে UI আপডেট করা যায়, তাই থ্রেড থেকে টোস্ট দেখানোর জন্য especiales handling প্রয়োজন।
ধাপ ১: নতুন প্রজেক্ট তৈরি করুন
Android Studio-তে File → New Project-এ যান এবং প্রয়োজনীয় বিবরণ পূরণ করুন।
ধাপ ২: লেআউট XML ফাইল
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">
</RelativeLayout>
ধাপ ৩: MainActivity.java বাস্তবায়ন
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Toast toast;
Thread thread;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toast = Toast.makeText(this, "This is a toast from Thread", Toast.LENGTH_SHORT);
thread = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 1000; i++) {
try {
Thread.sleep(1000);
runOnUiThread(new Runnable() {
@Override
public void run() {
toast.show();
}
});
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
thread.start();
}
}
গুরুত্বপূর্ণ দ্রষ্টব্য
মূল কোডে থ্রেড থেকে সরাসরি toast.show() কল করা হয়েছে, যা সঠিক নয়। আপনাকে runOnUiThread() বা Handler ব্যবহার করে UI থ্রেডে টোস্ট দেখাতে হবে। উপরের সংশোধিত কোডে runOnUiThread() ব্যবহার করা হয়েছে।
ধাপ ৪: AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="app.com.sample">
<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>
অ্যাপ্লিকেশন টেস্ট করুন
অ্যাপ্লিকেশন রান করুন এবং লগক্যাট বা ডিভাইস স্ক্রিনে টোস্ট মেসেজ reappearing দেখুন। প্রতিটি ২ সেকেন্ড পরপর টোস্ট প্রদর্শিত হবে।