Android में Handler से पीरियॉडिक टास्क चलाने का तरीका
यह उदाहरण दिखाता है कि Handler और Runnable का उपयोग करके किसी मेथड को हर 10 सेकंड (या किसी भी अंतराल) पर कैसे दोहराया जाए। यह पोलिंग या पीरियॉडिक अपडेट के लिए उपयोगी है।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में File → New Project से प्रोजेक्ट बनाएं।
चरण 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:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
</LinearLayout>
चरण 3: MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Handler;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Handler handler = new Handler();
Runnable runnable;
int delay = 10000; // 10 सेकंड = 10,000 मिलीसेकंड
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onResume() {
super.onResume();
handler.postDelayed(runnable = new Runnable() {
@Override
public void run() {
// यहां अपना टास्क डालें
Toast.makeText(MainActivity.this, "यह मेथड हर 10 सेकंड में चलता है", Toast.LENGTH_SHORT).show();
// अगली बार के लिए फिर से शेड्यूल करें
handler.postDelayed(this, delay);
}
}, delay);
}
@Override
protected void onPause() {
super.onPause();
// एक्टिविटी विजिबल न होने पर हैंडलर रोकें
handler.removeCallbacks(runnable);
}
}
चरण 4: 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>
बेहतर विकल्प: WorkManager या Coroutines
लंबे समय तक चलने वाले या सटीक टाइमिंग वाले बैकग्राउंड कार्यों के लिए Handler के बजाय WorkManager (Jetpack) या Kotlin Coroutines का उपयोग करना अधिक विश्वसनीय और बैटरी-फ्रेंडली है।