उदाहरण में जाने से पहले, हमें पता होना चाहिए कि Android में थ्रेड क्या है। थ्रेड सामान्य प्रोसेसिंग कार्य हैं जो अधिकांश काम कर सकते हैं, लेकिन एक चीज जो वे नहीं कर सकते वह है UI को अपडेट करना।
लगातार थ्रेड चलाने का उदाहरण
चरण 1 - नया प्रोजेक्ट बनाएं
Android Studio में एक नया प्रोजेक्ट बनाएं: File → New Project पर जाएं और आवश्यक विवरण भरें।
चरण 2 - लेआउट XML में कोड जोड़ें
res/layout/activity_main.xml में निम्नलिखित कोड जोड़ें:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Continuous Thread"
android:textSize="25sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
उपरोक्त कोड में, हमने TextView लिया है। जब उपयोगकर्ता TextView पर क्लिक करता है, तो यह लगातार थ्रेड शुरू करेगा और परिणाम Logcat पर प्रिंट करेगा।
चरण 3 - MainActivity.java में कोड जोड़ें
src/MainActivity.java में निम्नलिखित कोड जोड़ें:
package com.example.andy.myapplication;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private TextView text;
private volatile boolean running = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text = findViewById(R.id.text);
text.setOnClickListener(v -> {
if (!running) {
running = true;
new Thread(() -> {
while (running) {
Log.d("Continuous Thread", "Tutorialspoint.com");
try { Thread.sleep(1000); } catch (InterruptedException ignored) {}
}
}).start();
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
running = false; // थ्रेड रोकें
}
}
सर्वोत्तम अभ्यास: अनंत लूप वाले थ्रेड को रोकने का तंत्र (जैसे
volatile booleanफ्लैग) अवश्य शामिल करें, अन्यथा यह मेमोरी लीक और बैटरी ड्रेन का कारण बनेगा।
ऐप चलाएं
अपने Android डिवाइस को कंप्यूटर से कनेक्ट करें और ऐप चलाएं। TextView पर क्लिक करने पर, यह लगातार थ्रेड चलाएगा और Logcat में आउटपुट प्रिंट करेगा।