Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

एंड्रॉइड में एक्टिविटी की वर्तमान स्थिति कैसे प्राप्त करें?

एंड्रॉइड में 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() से पहले
CREATEDonCreate() के बादव्यू बने, लेकिन दिख नहीं रहे
STARTEDonStart() के बादव्यू दिख रहे, लेकिन इंटरैक्टिव नहीं
RESUMEDonResume() के बादफोरग्राउंड में, इंटरैक्टिव
DESTROYEDonDestroy() के बादसाफ हो रहा, फाइनल स्टेट

वैकल्पिक: डायरेक्ट स्टेट एक्सेस

// कहीं भी एक्टिविटी/फ्रैगमेंट में
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 बदलेगा।

  1. Android में वर्तमान थ्रेड इंटरप्टेड है या नहीं कैसे जांचें? Android में वर्तमान थ्रेड इंटरप्टेड है या नहीं कैसे जांचें?

    Android में वर्तमान थ्रेड के इंटरप्टेड स्थिति की जांच उदाहरण में जाने से पहले, हमें पता होना चाहिए कि थ्रेड क्या है। एक थ्रेड एक हल्का सब-प्रोसेस है, यह UI को बाधित किए बिना बैकग्राउंड ऑपरेशन करने जा रहा है। यह उदाहरण दर्शाता है कि Android में वर्तमान थ्रेड इंटरप्टेड है या नहीं कैसे जांचें। चरण 1:

  1. Android में वर्तमान थ्रेड डेमॉन है या नहीं कैसे जांचें? Android में वर्तमान थ्रेड डेमॉन है या नहीं कैसे जांचें?

    Android में वर्तमान थ्रेड के डेमॉन स्थिति की जांच उदाहरण में जाने से पहले, हमें पता होना चाहिए कि थ्रेड क्या है। एक थ्रेड एक हल्का सब-प्रोसेस है, यह UI को बाधित किए बिना बैकग्राउंड ऑपरेशन करने जा रहा है। यह उदाहरण दर्शाता है कि Android में वर्तमान थ्रेड डेमॉन है या नहीं कैसे जांचें। चरण 1: नया प्रो

  1. Android में वर्तमान थ्रेड ID कैसे प्राप्त करें? Android में वर्तमान थ्रेड ID कैसे प्राप्त करें?

    Android में वर्तमान थ्रेड की ID प्राप्त करना उदाहरण में जाने से पहले, हमें पता होना चाहिए कि थ्रेड क्या है। एक थ्रेड एक हल्का सब-प्रोसेस है, यह UI को बाधित किए बिना बैकग्राउंड ऑपरेशन करने जा रहा है। यह उदाहरण दर्शाता है कि Android में वर्तमान थ्रेड ID कैसे प्राप्त करें। चरण 1: नया प्रोजेक्ट बनाएं A