एंड्रॉइड में Lifecycle API से एक्टिविटी की वर्तमान स्थिति प्राप्त करना
यह ट्यूटोरियल दिखाता है कि Lifecycle और LifecycleObserver का उपयोग करके एक्टिविटी की वर्तमान लाइफसाइकिल स्थिति (CREATED, STARTED, RESUMED, DESTROYED, आदि) कैसे प्राप्त करें।
चरण 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:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/text"
android:textSize="30sp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center" />
</LinearLayout>
चरण 3: MainActivity कोड (java/MainActivity.java)
package com.example.myapplication;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
public class MainActivity extends AppCompatActivity implements LifecycleObserver {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.text);
// लाइफसाइकिल ऑब्जर्वर रजिस्टर करें
getLifecycle().addObserver(this);
// वर्तमान स्थिति दिखाएं
updateStateText();
}
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
void onCreateEvent() { updateStateText(); }
@OnLifecycleEvent(Lifecycle.Event.ON_START)
void onStartEvent() { updateStateText(); }
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
void onResumeEvent() { updateStateText(); }
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
void onPauseEvent() { updateStateText(); }
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
void onStopEvent() { updateStateText(); }
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
void onDestroyEvent() { updateStateText(); }
private void updateStateText() {
Lifecycle.State currentState = getLifecycle().getCurrentState();
textView.setText("वर्तमान स्थिति: " + currentState.name());
}
}
लाइफसाइकिल स्टेट्स समझें
| स्टेट | कब | विवरण |
|---|---|---|
| INITIALIZED | ऑब्जेक्ट निर्माण के बाद | onCreate() से पहले |
| CREATED | onCreate() के बाद | व्यू बने, लेकिन दिख नहीं रहे |
| STARTED | onStart() के बाद | व्यू दिख रहे, लेकिन इंटरैक्टिव नहीं |
| RESUMED | onResume() के बाद | फोरग्राउंड में, इंटरैक्टिव |
| DESTROYED | onDestroy() के बाद | साफ हो रहा, फाइनल स्टेट |
वैकल्पिक: डायरेक्ट स्टेट एक्सेस
// कहीं भी एक्टिविटी/फ्रैगमेंट में
Lifecycle.State state = getLifecycle().getCurrentState();
if (state.isAtLeast(Lifecycle.State.STARTED)) {
// UI अपडेट सुरक्षित है
}
if (state == Lifecycle.State.RESUMED) {
// फोरग्राउंड में
}
कॉमन उपयोग केस
- कैमरा/सेंसर केवल RESUMED में शुरू करें
- नेटवर्क रिक्वेस्ट केवल STARTED+ में
- एनिमेशन केवल RESUMED में
- लॉगिंग/एनालिटिक्स स्टेट ट्रांजिशन
ऐप टेस्ट करें
चलाएं, होम दबाएं, रीसेंट ऐप्स खोलें, वापस आएं - टेक्स्ट CREATED → STARTED → RESUMED → STARTED → RESUMED बदलेगा।