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

एक्टिविटी स्टैक में शीर्ष एक्टिविटी का नाम कैसे प्राप्त करें?

एक्टिविटी स्टैक में शीर्ष (टॉप) एक्टिविटी का नाम प्राप्त करना

यह उदाहरण दर्शाता है कि ActivityManager का उपयोग करके वर्तमान में चल रही शीर्ष एक्टिविटी का नाम कैसे प्राप्त करें।

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

Android 5.0 (API 21) और उससे ऊपर के वर्जन में getRunningTasks() डिप्रिकेटेड है और केवल सिस्टम ऐप्स के लिए काम करता है। सामान्य ऐप्स के लिए यह केवल अपनी ही एक्टिविटी की जानकारी दे पाता है। आधुनिक एंड्रॉइड वर्जन के लिए UsageStatsManager का उपयोग करना बेहतर है।

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

Android Studio में नया प्रोजेक्ट बनाएं।

चरण 2: लेआउट फ़ाइल

<?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:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="30sp" />

</LinearLayout>

चरण 3: MainActivity.java (लीगेसी मेथड)

package com.example.myapplication;

import android.app.ActivityManager;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

import java.util.List;

public class MainActivity extends AppCompatActivity {

    private TextView textView;

    @RequiresApi(api = Build.VERSION_CODES.P)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = findViewById(R.id.text);

        // लीगेसी मेथड - केवल पुराने एंड्रॉइड वर्जन/सिस्टम ऐप्स के लिए
        ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningTaskInfo> tasks = activityManager.getRunningTasks(Integer.MAX_VALUE);

        if (tasks != null && !tasks.isEmpty()) {
            String topActivity = tasks.get(0).topActivity.toString();
            textView.setText("शीर्ष एक्टिविटी: " + topActivity);
        } else {
            textView.setText("कोई टास्क नहीं मिला");
        }
    }
}

आधुनिक विकल्प (Android 5.0+)

नए एंड्रॉइड वर्जन के लिए UsageStatsManager का उपयोग करें:

// मैनिफेस्ट में परमिशन जोड़ें
// <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" tools:ignore="ProtectedPermissions"/>

// कोड में:
UsageStatsManager usm = (UsageStatsManager) getSystemService(Context.USAGE_STATS_SERVICE);
long time = System.currentTimeMillis();
List<UsageStats> stats = usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000*3600, time);
if (stats != null && !stats.isEmpty()) {
    UsageStats topApp = stats.stream().max((u1, u2) -> Long.compare(u1.getLastTimeUsed(), u2.getLastTimeUsed())).orElse(null);
    if (topApp != null) {
        textView.setText("शीर्ष ऐप: " + topApp.getPackageName());
    }
}

ऐप चलाएं

पुराने एंड्रॉइड वर्जन पर यह शीर्ष एक्टिविटी दिखाएगा। नए वर्जन पर केवल अपनी ऐप की जानकारी दिखेगी।

एक्टिविटी स्टैक में शीर्ष एक्टिविटी का नाम कैसे प्राप्त करें?

  1. Android में स्टैक (Stack) को कैसे सॉर्ट करें? Android में स्टैक (Stack) को कैसे सॉर्ट करें?

    Android में स्टैक (Stack) को सॉर्ट करना यह उदाहरण दर्शाता है कि Android में स्टैक को कैसे सॉर्ट किया जाता है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project पर जाएं और आवश्यक विवरण भरकर एक नया प्रोजेक्ट बनाएं। चरण 2: लेआउट XML में कोड जोड़ें res/layout/activity_main.xml में निम्न

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

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

  1. एंड्रॉइड में रिसोर्स ID से रिसोर्स नाम कैसे प्राप्त करें? एंड्रॉइड में रिसोर्स ID से रिसोर्स नाम कैसे प्राप्त करें?

    एंड्रॉइड में रिसोर्स ID से रिसोर्स नाम प्राप्त करना यह उदाहरण दिखाता है कि `getResources().getResourceName()` मेथड का उपयोग करके किसी व्यू की रिसोर्स ID से उसका पूरा नाम (पैकेज:टाइप/नाम) कैसे प्राप्त किया जाता है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनकर नया प्रोजेक्ट