কম্পিউটার

অ্যান্ড্রয়েডে দুবার থ্রেড স্টার্ট এড়াবেন কীভাবে?


একটি উদাহরণে যাওয়ার আগে, থ্রেড কী তা আমাদের জানা উচিত। একটি থ্রেড একটি লাইটওয়েট সাব-প্রসেস, এটি UI-তে বাধা ছাড়াই ব্যাকগ্রাউন্ড অপারেশন করতে যাচ্ছে। অ্যান্ড্রয়েডে দুবার থ্রেড স্টার্ট কীভাবে এড়ানো যায় সে সম্পর্কে এই উদাহরণটি দেখায়।

ধাপ 1 − অ্যান্ড্রয়েড স্টুডিওতে একটি নতুন প্রকল্প তৈরি করুন, ফাইল ⇒ নতুন প্রকল্পে যান এবং একটি নতুন প্রকল্প তৈরি করতে প্রয়োজনীয় সমস্ত বিবরণ পূরণ করুন৷

ধাপ 2 − res/layout/activity_main.xml-এ নিম্নলিখিত কোড যোগ করুন।

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
   android:orientation="vertical"
   android:gravity="center_horizontal"
   android:layout_marginTop="100dp"
   tools:context=".MainActivity">
   <EditText
      android:id="@+id/edit_query"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:hint="Enter string" />
   <Button
      android:id="@+id/click"
      android:layout_marginTop="50dp"
      style="@style/Base.TextAppearance.AppCompat.Widget.Button.Borderless.Colored"
      android:layout_width="wrap_content"
      android:background="#c1c1c1"
      android:textColor="#FFF"
      android:layout_height="wrap_content"
      android:text="Button" />
   <TextView
      android:id="@+id/text"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content" />
</LinearLayout>

উপরের কোডে, আমরা edittext এবং textview নিয়েছি। ব্যবহারকারী যখন সম্পাদনা পাঠে কিছু পাঠ্য প্রবেশ করান, তখন এটি 5000ms পর্যন্ত অপেক্ষা করবে এবং পাঠ্য ভিউ আপডেট করবে।

ধাপ 3 − src/MainActivity.java

-এ নিম্নলিখিত কোড যোগ করুন
package com.example.myapplication;

import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
   EditText edit_query;
   TextView textView;
   boolean twice=false;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      edit_query = findViewById(R.id.edit_query);
      textView = findViewById(R.id.text);
      findViewById(R.id.click).setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            runthread();
         }
      });
   }

   private void runthread() {
      twice = true;
      if(twice) {
         final String s1 = edit_query.getText().toString();
         Handler handler = new Handler();
         handler.post(new Runnable() {
            @Override
            public void run() {
               runOnUiThread(new Runnable() {
                  @Override
                  public void run() {
                     textView.setText(s1);
                     try {
                        Thread.sleep(5000);
                        twice = false;
                     } catch (InterruptedException e) {
                        e.printStackTrace();
                     }
                  }
               });
            }
         });
      }
   }
}

আপনার অ্যাপ্লিকেশন চালানোর চেষ্টা করা যাক. আমি ধরে নিচ্ছি আপনি আপনার কম্পিউটারের সাথে আপনার আসল অ্যান্ড্রয়েড মোবাইল ডিভাইসটি সংযুক্ত করেছেন৷ অ্যান্ড্রয়েড স্টুডিও থেকে অ্যাপটি চালাতে, আপনার প্রোজেক্টের অ্যাক্টিভিটি ফাইলগুলির একটি খুলুন এবং টুলবার থেকে রান আইকনে ক্লিক করুন। একটি বিকল্প হিসাবে আপনার মোবাইল ডিভাইস নির্বাচন করুন এবং তারপরে আপনার মোবাইল ডিভাইসটি পরীক্ষা করুন যা আপনার ডিফল্ট স্ক্রীন প্রদর্শন করবে -

অ্যান্ড্রয়েডে দুবার থ্রেড স্টার্ট এড়াবেন কীভাবে?

উপরের ফলাফলে, সম্পাদনা টেক্সটে কিছু টেক্সট লিখুন এবং দুই বা তিনবার বোতামে ক্লিক করুন, এটি একটি থ্রেড শুরু করতে যাচ্ছে না, 5000ms পরে এটি টেক্সটভিউ আপডেট করবে এবং থ্রেড সংখ্যা 0 এ রিসেট করবে।


  1. অ্যান্ড্রয়েডে ক্লিক বোতামে নতুন কার্যকলাপ কীভাবে শুরু করবেন?

  2. অ্যান্ড্রয়েডে একটি থ্রেড থেকে টোস্ট বার্তাগুলি কীভাবে প্রদর্শন করবেন?

  3. অ্যান্ড্রয়েডে AsyncTask থ্রেড কীভাবে বন্ধ করবেন?

  4. বুট করার সময় একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশন কিভাবে শুরু করবেন?