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

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

फोरग्राउंड एक्टिविटी कॉन्टेक्स्ट प्राप्त करना

यह उदाहरण दर्शाता है कि एप्लिकेशन क्लास का उपयोग करके वर्तमान में विजिबल (फोरग्राउंड) एक्टिविटी का कॉन्टेक्स्ट कैसे ट्रैक करें। यह तब उपयोगी होता है जब आपको ग्लोबल कॉन्टेक्स्ट की आवश्यकता होती है, जैसे नोटिफिकेशन या बैकग्राउंड टास्क में।

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio में File → New Project चुनें और बेसिक डिटेल्स भरें।

चरण 2: MyApp.java (एप्लिकेशन क्लास) बनाएं

package app.tutorialspoint.com.sample;

import android.app.Activity;
import android.app.Application;

public class MyApp extends Application {
    private Activity mCurrentActivity = null;

    @Override
    public void onCreate() {
        super.onCreate();
    }

    public Activity getCurrentActivity() {
        return mCurrentActivity;
    }

    public void setCurrentActivity(Activity mCurrentActivity) {
        this.mCurrentActivity = mCurrentActivity;
    }
}

चरण 3: MyBaseActivity.java (बेस एक्टिविटी) बनाएं

package app.tutorialspoint.com.sample;

import android.app.Activity;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;

public class MyBaseActivity extends AppCompatActivity {
    protected MyApp mMyApp;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mMyApp = (MyApp) getApplicationContext();
    }

    @Override
    protected void onResume() {
        super.onResume();
        mMyApp.setCurrentActivity(this);
    }

    @Override
    protected void onPause() {
        clearReferences();
        super.onPause();
    }

    @Override
    protected void onDestroy() {
        clearReferences();
        super.onDestroy();
    }

    private void clearReferences() {
        Activity currActivity = mMyApp.getCurrentActivity();
        if (this.equals(currActivity)) {
            mMyApp.setCurrentActivity(null);
        }
    }
}

चरण 4: MainActivity.java में उपयोग करें

package app.tutorialspoint.com.sample;

import android.app.Activity;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Activity currentActivity = ((MyApp) getApplicationContext()).getCurrentActivity();
        // currentActivity का उपयोग करें
    }
}

चरण 5: AndroidManifest.xml में रजिस्टर करें

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.tutorialspoint.com.sample">

    <uses-permission android:name="android.permission.CALL_PHONE" />

    <application
        android:name=".MyApp"
        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>

        <activity android:name=".MyBaseActivity" />

    </application>
</manifest>

महत्वपूर्ण नोट्स

  • सभी एक्टिविटीज को MyBaseActivity से एक्सटेंड करना चाहिए ताकि ट्रैकिंग काम करे।
  • onPause और onDestroy में रेफरेंस क्लियर करना मेमोरी लीक रोकता है।
  • आधुनिक एंड्रॉइड में ActivityLifecycleCallbacks या ProcessLifecycleOwner (Jetpack Lifecycle) का उपयोग करना अधिक बेहतर है।
  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