উদাহরণে যাওয়ার আগে, আমাদের জানা উচিত অ্যান্ড্রয়েডে runOnUiThread() কী। কখনও কখনও প্রধান থ্রেড কিছু ভারী অপারেশন সঞ্চালিত. ব্যবহারকারী যদি UI-তে কিছু অতিরিক্ত ক্রিয়াকলাপ যোগ করতে চায়, তাহলে এটি লোড পাবে এবং ANR প্রদান করবে। runOnUiThread ব্যবহার করে কর্মী থ্রেডে ব্যাক গ্রাউন্ড অপারেশন করতে যাচ্ছে এবং মূল থ্রেডে ফলাফল আপডেট করতে যাচ্ছে।
এই উদাহরণটি দেখায় কিভাবে আমরা Android এ runOnUiThread ব্যবহার করি।
ধাপ 1 − অ্যান্ড্রয়েড স্টুডিওতে একটি নতুন প্রকল্প তৈরি করুন, ফাইল ⇒ নতুন প্রকল্পে যান এবং একটি নতুন প্রকল্প তৈরি করতে প্রয়োজনীয় সমস্ত বিবরণ পূরণ করুন৷
ধাপ 2 − res/layout/activity_main.xml-এ নিম্নলিখিত কোড যোগ করুন।
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="https://schemas.android.com/apk/res/android" android:id="@+id/parent" xmlns:tools="https://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:gravity="center" android:orientation="vertical"> <Button android:id="@+id/runOn" android:text="Run" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/text" android:textSize="20sp" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
উপরের কোডে, আমরা একটি বোতাম এবং টেক্সট ভিউ নিয়েছি, যখন আপনি বোতামে ক্লিক করবেন, এটি টেক্সট ভিউ আপডেট করবে।
ধাপ 3 − src/MainActivity.java
-এ নিম্নলিখিত কোড যোগ করুনpackage com.example.andy.myapplication; import android.os.Build; import android.os.Bundle; import android.support.annotation.RequiresApi; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity { int i = 0; @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final TextView textView = findViewById(R.id.text); final Button runOn = findViewById(R.id.runOn); runOn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new Thread() { public void run() { while (i++ < 1000) { try { runOnUiThread(new Runnable() { @Override public void run() { textView.setText("#" + i); } }); Thread.sleep(300); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); } }); } }
উপরের কোডে, ব্যবহারকারী বোতামে ক্লিক করলে। এটি runOnUiThread() ব্যবহার করে টেক্সট ভিউ আপডেট করবে যা নীচে দেখানো হয়েছে -
new Thread() { public void run() { while (i++ < 1000) { try { runOnUiThread(new Runnable() { @Override public void run() { textView.setText("#" + i); } }); Thread.sleep(300); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start();
আপনার অ্যাপ্লিকেশন চালানোর চেষ্টা করা যাক. আমি ধরে নিচ্ছি আপনি আপনার কম্পিউটারের সাথে আপনার আসল অ্যান্ড্রয়েড মোবাইল ডিভাইসটি সংযুক্ত করেছেন৷ অ্যান্ড্রয়েড স্টুডিও থেকে অ্যাপটি চালাতে, আপনার প্রোজেক্টের অ্যাক্টিভিটি ফাইলগুলির একটি খুলুন এবং টুলবার থেকে রান আইকনে ক্লিক করুন। একটি বিকল্প হিসাবে আপনার মোবাইল ডিভাইস নির্বাচন করুন এবং তারপরে আপনার মোবাইল ডিভাইসটি পরীক্ষা করুন যা আপনার ডিফল্ট স্ক্রীন প্রদর্শন করবে -
উপরের ফলাফলে, এটি প্রাথমিক স্ক্রীন দেখানো হয়েছে। যখন ব্যবহারকারী রান বোতামে ক্লিক করেন তখন এটি নীচে দেখানো হিসাবে পাঠ্য ভিউ আপডেট করবে -