पिछले पेज पर वापस जाने के जेस्चर का इस्तेमाल करने की सुविधा जोड़ें

पहली इमेज. फ़ोन पर पीछे जाने के लिए सुझाए गए जेस्चर का मॉकअप

'पीछे जाने पर झलक दिखाने वाला हाथ का जेस्चर', जेस्चर नेविगेशन की एक सुविधा है. इसकी मदद से, उपयोगकर्ताओं को यह झलक दिखती है कि स्क्रीन पर पीछे की ओर स्वाइप करने पर वे कहां पहुंचेंगे.

उदाहरण के लिए, पिछले पेज पर जाने के लिए हाथ के जेस्चर का इस्तेमाल करने पर, आपके ऐप्लिकेशन के पीछे होम स्क्रीन की ऐनिमेशन वाली झलक दिख सकती है. जैसा कि पहली इमेज में दिखाए गए मॉकअप में दिखाया गया है.

Android 15 से, प्रिडिक्टिव बैक ऐनिमेशन के लिए डेवलपर का विकल्प अब उपलब्ध नहीं है. होम स्क्रीन पर वापस जाने, एक टास्क से दूसरे टास्क पर जाने, और एक गतिविधि से दूसरी गतिविधि पर जाने जैसे सिस्टम ऐनिमेशन, अब उन ऐप्लिकेशन के लिए दिखेंगे जिन्होंने ऐप्लिकेशन से बाहर निकलने के लिए, अनुमानित जेस्चर की सुविधा के लिए पूरी तरह से या किसी गतिविधि के लेवल पर ऑप्ट-इन किया है.

घर बैठे इस ऐनिमेशन को टेस्ट किया जा सकता है (जैसा कि इस पेज के नीचे दिए गए सेक्शन में बताया गया है).

अनुमानित बैक जेस्चर की सुविधा इस्तेमाल करने के लिए, आपको अपने ऐप्लिकेशन को अपडेट करना होगा. इसके लिए, OnBackPressedCallback AppCompat 1.6.0-alpha05 (AndroidX) या इसके बाद के वर्शन वाले एपीआई का इस्तेमाल करें. इसके अलावा, OnBackInvokedCallback प्लैटफ़ॉर्म एपीआई का इस्तेमाल भी किया जा सकता है. ज़्यादातर ऐप्लिकेशन, पुराने सिस्टम के साथ काम करने वाले AndroidX API का इस्तेमाल करते हैं.

इस अपडेट में, बैक नेविगेशन को सही तरीके से इंटरसेप्ट करने के लिए माइग्रेशन पाथ दिया गया है. इसमें, बैक इंटरसेप्शन को KeyEvent.KEYCODE_BACK और onBackPressed के तरीकों वाली किसी भी क्लास से बदलना शामिल है. जैसे, Activity और Dialog. इसके लिए, नए सिस्टम के Back API का इस्तेमाल किया जाता है.

कोडलैब और Google I/O वीडियो

इस पेज पर मौजूद दस्तावेज़ का इस्तेमाल करने के अलावा, हमारा कोडलैब आज़माएं. यह AndroidX Activity API का इस्तेमाल करके, अनुमानित बैक जेस्चर को मैनेज करने वाले वेबव्यू के इस्तेमाल के सामान्य उदाहरण को लागू करता है.

आपके पास Google I/O का हमारा वीडियो देखने का विकल्प भी है. इसमें, AndroidX और प्लैटफ़ॉर्म एपीआई को लागू करने के अन्य उदाहरणों के बारे में बताया गया है.

ऐसे ऐप्लिकेशन को अपडेट करना जो डिफ़ॉल्ट 'वापस जाएं' नेविगेशन का इस्तेमाल करता है

अगर आपका ऐप्लिकेशन, बैक बटन के लिए कोई कस्टम व्यवहार लागू नहीं करता है, तो इस सुविधा के साथ काम करने के लिए अपने ऐप्लिकेशन को अपडेट करना आसान है. दूसरे शब्दों में, इसका मतलब है कि बैक बटन को मैनेज करने की ज़िम्मेदारी सिस्टम के पास है. इस गाइड में बताए गए तरीके से, इस सुविधा के लिए ऑप्ट-इन करें.

अगर आपका ऐप्लिकेशन फ़्रैगमेंट या नेविगेशन कॉम्पोनेंट का इस्तेमाल करता है, तो AndroidX ऐक्टिविटी 1.6.0-alpha05 या इसके बाद के वर्शन पर भी अपग्रेड करें.

कस्टम बैक नेविगेशन का इस्तेमाल करने वाले ऐप्लिकेशन को अपडेट करें

अगर आपका ऐप्लिकेशन, कस्टम बैक व्यवहार को लागू करता है, तो माइग्रेशन के अलग-अलग पाथ होते हैं. यह इस बात पर निर्भर करता है कि AndroidX का इस्तेमाल किया जाता है या नहीं और यह वापस नेविगेशन को कैसे मैनेज करता है.

आपका ऐप्लिकेशन, AndroidX का इस्तेमाल करता है आपका ऐप्लिकेशन, बैक नेविगेशन को कैसे मैनेज करता है माइग्रेशन के लिए सुझाया गया पाथ (इस पेज पर लिंक)
हां AndroidX API AndroidX के मौजूदा वर्शन को माइग्रेट करना
काम न करने वाले प्लैटफ़ॉर्म एपीआई काम न करने वाले बैक नेविगेशन एपीआई वाले AndroidX ऐप्लिकेशन को AndroidX APIs पर माइग्रेट करना
नहीं ऐसे प्लैटफ़ॉर्म एपीआई जो काम नहीं करते, लेकिन माइग्रेट किए जा सकते हैं ऐसे ऐप्लिकेशन को माइग्रेट करना जो काम न करने वाले बैक नेविगेशन एपीआई का इस्तेमाल प्लैटफ़ॉर्म एपीआई पर करता है
ऐसे प्लैटफ़ॉर्म के एपीआई जो काम नहीं करते, लेकिन माइग्रेट नहीं हो पा रहे जब तक यह ज़रूरी सुविधा नहीं बन जाती, तब तक ऑप्ट-इन को टाल दें

AndroidX के पिछले नेविगेशन को माइग्रेट करना

इस इस्तेमाल के उदाहरण का सबसे ज़्यादा इस्तेमाल किया जाता है. साथ ही, इसका सबसे ज़्यादा सुझाव दिया जाता है. यह उन नए या मौजूदा ऐप्लिकेशन पर लागू होता है जो OnBackPressedDispatcher के साथ कस्टम जेस्चर नेविगेशन हैंडल करने की सुविधा लागू करते हैं. इस बारे में कस्टम बैक नेविगेशन की सुविधा उपलब्ध कराना में बताया गया है.

अगर आपका ऐप्लिकेशन इस कैटगरी में आता है, तो यह तरीका अपनाकर सुझाव दें कि पिछले जेस्चर का इस्तेमाल करने के लिए क्या किया जा सके:

  1. यह पक्का करने के लिए कि पहले से ही OnBackPressedDispatcher एपीआई (जैसे, फ़्रैगमेंट और नेविगेशन कॉम्पोनेंट) का इस्तेमाल करने वाले एपीआई, अनुमानित बैक जेस्चर के साथ आसानी से काम करें, AndroidX Activity 1.6.0-alpha05 पर अपग्रेड करें.

    // In your build.gradle file:
    dependencies {
    
    // Add this in addition to your other dependencies
    implementation "androidx.activity:activity:1.6.0-alpha05"
    
  2. इस पेज पर बताए गए तरीके से, पीछे जाने पर झलक दिखाने वाले हाथ के जेस्चर के लिए ऑप्ट-इन करें.

AndroidX ऐप्लिकेशन को AndroidX एपीआई पर माइग्रेट करना, जिसमें बैक नेविगेशन के लिए काम न करने वाले एपीआई शामिल हैं

अगर आपका ऐप्लिकेशन AndroidX लाइब्रेरी का इस्तेमाल करता है, लेकिन काम न करने वाले बैक नेविगेशन एपीआई को लागू करता है या उनका रेफ़रंस देता है, तो आपको नए व्यवहार के साथ काम करने के लिए, AndroidX एपीआई का इस्तेमाल करने के लिए माइग्रेट करना होगा.

काम न करने वाले एपीआई को AndroidX एपीआई पर माइग्रेट करने के लिए:

  1. अपने सिस्टम के बैक हैंडलिंग लॉजिक को AndroidX के OnBackPressedDispatcher पर माइग्रेट करें. इसके लिए, OnBackPressedCallback को लागू करें. ज़्यादा जानकारी के लिए, पसंद के मुताबिक बैक नेविगेशन उपलब्ध कराना लेख पढ़ें.

  2. जब आप पीछे के जेस्चर को रोकने के लिए तैयार हों, तो OnBackPressedCallback को बंद करें.

  3. OnBackPressed या KeyEvent.KEYCODE_BACK की मदद से, बैक इवेंट को इंटरसेप्ट करना बंद करें.

  4. पक्का करें कि आपने AndroidX Activity 1.6.0-alpha05 पर अपग्रेड कर लिया हो.

    // In your build.gradle file:
    dependencies {
    
    // Add this in addition to your other dependencies
    implementation "androidx.activity:activity:1.6.0-alpha05"
    
  5. ऐप्लिकेशन को माइग्रेट करने के बाद, होम स्क्रीन पर वापस जाने के लिए सिस्टम ऐनिमेशन देखने के लिए, 'वापस जाने के लिए जेस्चर का सुझाव' सुविधा के लिए ऑप्ट-इन करें. इसके बारे में इस पेज पर बताया गया है.

ऐसे ऐप्लिकेशन को प्लैटफ़ॉर्म एपीआई पर माइग्रेट करना जो बैक नेविगेशन के लिए काम न करने वाले एपीआई का इस्तेमाल करता है

अगर आपका ऐप्लिकेशन AndroidX लाइब्रेरी का इस्तेमाल नहीं कर सकता और इसके बजाय, काम न करने वाले एपीआई का इस्तेमाल करके, बैक नेविगेशन को लागू करता है या उसका रेफ़रंस देता है, तो आपको OnBackInvokedCallback प्लैटफ़ॉर्म एपीआई पर माइग्रेट करना होगा.

काम न करने वाले एपीआई को प्लैटफ़ॉर्म एपीआई पर माइग्रेट करने के लिए, यह तरीका अपनाएं:

  1. Android 13 या इसके बाद के वर्शन वाले डिवाइसों के लिए, नए OnBackInvokedCallback एपीआई का इस्तेमाल करें. साथ ही, Android 12 या इससे पहले के वर्शन वाले डिवाइसों पर, काम न करने वाले एपीआई का इस्तेमाल करें.

  2. अपने कस्टम बैक लॉजिक को OnBackInvokedCallback में onBackInvokedDispatcher के साथ रजिस्टर करें. इससे मौजूदा गतिविधि पूरी नहीं हो पाती. साथ ही, जब उपयोगकर्ता सिस्टम पर 'वापस जाएं' नेविगेशन को पूरा कर लेता है, तब आपके कॉलबैक को 'वापस जाएं' कार्रवाई पर प्रतिक्रिया देने का मौका मिलता है.

  3. पिछली स्क्रीन पर वापस जाने के जेस्चर को रोकने के लिए, OnBackInvokedCallback का रजिस्ट्रेशन रद्द करें. ऐसा न करने पर, उपयोगकर्ताओं को सिस्टम के बैक नेविगेशन का इस्तेमाल करते समय, गड़बड़ियां दिख सकती हैं. उदाहरण के लिए, व्यू के बीच "फ़्रीज़ होना" और उन्हें आपके ऐप्लिकेशन को बंद करने के लिए मजबूर होना.

    onBackPressed में से लॉजिक को माइग्रेट करने का तरीका, यहां दिए गए उदाहरण में बताया गया है:

    Kotlin

    @Override
    fun onCreate() {
        if (BuildCompat.isAtLeastT()) {
            onBackInvokedDispatcher.registerOnBackInvokedCallback(
                OnBackInvokedDispatcher.PRIORITY_DEFAULT
            ) {
                /**
                 * onBackPressed logic goes here. For instance:
                 * Prevents closing the app to go home screen when in the
                 * middle of entering data to a form
                 * or from accidentally leaving a fragment with a WebView in it
                 *
                 * Unregistering the callback to stop intercepting the back gesture:
                 * When the user transitions to the topmost screen (activity, fragment)
                 * in the BackStack, unregister the callback by using
                 * OnBackInvokeDispatcher.unregisterOnBackInvokedCallback
                 * (https://developer.android.com/reference/kotlin/android/window/OnBackInvokedDispatcher#unregisteronbackinvokedcallback)
                 */
            }
        }
    }
    

    Java

    @Override
    void onCreate() {
      if (BuildCompat.isAtLeastT()) {
        getOnBackInvokedDispatcher().registerOnBackInvokedCallback(
            OnBackInvokedDispatcher.PRIORITY_DEFAULT,
            () -> {
              /**
               * onBackPressed logic goes here - For instance:
               * Prevents closing the app to go home screen when in the
               * middle of entering data to a form
               * or from accidentally leaving a fragment with a WebView in it
               *
               * Unregistering the callback to stop intercepting the back gesture:
               * When the user transitions to the topmost screen (activity, fragment)
               * in the BackStack, unregister the callback by using
               * OnBackInvokeDispatcher.unregisterOnBackInvokedCallback
               * (https://developer.android.com/reference/kotlin/android/view/OnBackInvokedDispatcher#unregisteronbackinvokedcallback)
               */
            }
        );
      }
    }
    
  4. Android 13 और इसके बाद के वर्शन के लिए, OnBackPressed या KeyEvent.KEYCODE_BACK के ज़रिए बैक इवेंट को इंटरसेप्ट करना बंद करें.

  5. ऐप्लिकेशन को माइग्रेट करने के बाद, 'वापस जाएं' जेस्चर के सुझाव की सुविधा के लिए ऑप्ट-इन करें (जैसा कि इस पेज पर बताया गया है), ताकि OnBackInvokedCallback लागू हो सके.

OnBackInvokedCallback को PRIORITY_DEFAULT या PRIORITY_OVERLAY के साथ रजिस्टर किया जा सकता है. यह सुविधा, मिलते-जुलते AndroidX OnBackPressedCallback में उपलब्ध नहीं है. PRIORITY_OVERLAY के साथ कॉलबैक रजिस्टर करना, कुछ मामलों में मददगार होता है.

यह तब लागू होता है, जब onKeyPreIme() से माइग्रेट किया जाता है और आपके कॉलबैक को खुले IME के बजाय, बैक जेस्चर की ज़रूरत होती है. IME खोले जाने पर, PRIORITY_DEFAULT के साथ कॉलबैक रजिस्टर करते हैं. PRIORITY_OVERLAY के साथ अपना कॉलबैक रजिस्टर करें, ताकि यह पक्का किया जा सके कि OnBackInvokedDispatcher, खुले हुए IME के बजाय आपके कॉलबैक पर बैक जेस्चर भेजे.

'पीछे जाने पर झलक दिखाने वाला हाथ का जेस्चर' सुविधा के लिए ऑप्ट-इन करना

अपने मामले के आधार पर, ऐप्लिकेशन को अपडेट करने का तरीका तय करने के बाद, ऐप्लिकेशन में 'वापस जाने के लिए अनुमानित जेस्चर' की सुविधा के लिए ऑप्ट-इन करें.

ऑप्ट-इन करने के लिए, AndroidManifest.xml में <application> टैग में, android:enableOnBackInvokedCallback फ़्लैग को true पर सेट करें.

<application
    ...
    android:enableOnBackInvokedCallback="true"
    ... >
...
</application>

अगर कोई वैल्यू सबमिट नहीं की जाती है, तो यह डिफ़ॉल्ट रूप से false पर सेट हो जाती है और ये काम करती है:

  • इस विकल्प से, पिछले जेस्चर का इस्तेमाल करने वाले सुझावों के सिस्टम का ऐनिमेशन बंद हो जाता है.
  • OnBackInvokedCallback को अनदेखा करता है, लेकिन OnBackPressedCallback कॉल काम करना जारी रखते हैं.

गतिविधि के लेवल पर ऑप्ट-इन करना

Android 14 से, android:enableOnBackInvokedCallback फ़्लैग की मदद से, गतिविधि के लेवल पर सिस्टम के अनुमानित ऐनिमेशन के लिए ऑप्ट-इन किया जा सकता है. इस तरीके से, एक साथ कई काम करने की सुविधा वाले बड़े ऐप्लिकेशन को, निर्देश देने वाले जेस्चर पर माइग्रेट करना और भी आसान हो जाता है. Android 15 में, अनुमानित बैक बटन अब डेवलपर विकल्प के पीछे नहीं है. ऐप्लिकेशन, पूरी तरह से या गतिविधि के लेवल पर अनुमानित सुझाव दिखाने की सुविधा के लिए ऑप्ट-इन कर सकते हैं.

यहां दिए गए कोड में, MainActivity से होम स्क्रीन पर वापस जाने वाले सिस्टम ऐनिमेशन को चालू करने के लिए, enableOnBackInvokedCallback का इस्तेमाल करने का उदाहरण दिया गया है:

<manifest ...>
    <application . . .

        android:enableOnBackInvokedCallback="false">

        <activity
            android:name=".MainActivity"
            android:enableOnBackInvokedCallback="true"
            ...
        </activity>
        <activity
            android:name=".SecondActivity"
            android:enableOnBackInvokedCallback="false"
            ...
        </activity>
    </application>
</manifest>

पिछले उदाहरण में, ".SecondActivity" के लिए android:enableOnBackInvokedCallback=true सेट करने पर, क्रॉस-ऐक्टिविटी सिस्टम ऐनिमेशन चालू हो जाता है.

android:enableOnBackInvokedCallback फ़्लैग का इस्तेमाल करते समय, इन बातों का ध्यान रखें:

  • android:enableOnBackInvokedCallback=false को सेट करने पर, अनुमानित बैक ऐनिमेशन गतिविधि या ऐप्लिकेशन के लेवल पर बंद हो जाते हैं. यह इस बात पर निर्भर करता है कि आपने टैग कहां सेट किया है. साथ ही, सिस्टम को OnBackInvokedCallback प्लैटफ़ॉर्म एपीआई पर किए गए कॉल को अनदेखा करने का निर्देश दिया जाता है. हालांकि, OnBackPressedCallback को कॉल करना जारी रहेगा, क्योंकि OnBackPressedCallback पुराने सिस्टम के साथ काम करता है और onBackPressed एपीआई को कॉल करता है. यह एपीआई, Android 13 से पहले के वर्शन पर काम नहीं करता.
  • ऐप्लिकेशन के लेवल पर enableOnBackInvokedCallback फ़्लैग सेट करने से, ऐप्लिकेशन में सभी गतिविधियों की डिफ़ॉल्ट वैल्यू बन जाती है. गतिविधि के लेवल पर फ़्लैग सेट करके, हर गतिविधि के लिए डिफ़ॉल्ट वैल्यू बदली जा सकती है, जैसा कि पिछले कोड के उदाहरण में दिखाया गया है.

कॉलबैक के सबसे सही तरीके

यहां, साथ काम करने वाले सिस्टम के कॉलबैक फ़ंक्शन इस्तेमाल करने के सबसे सही तरीके बताए गए हैं; BackHandler (लिखें के लिए), OnBackPressedCallback या OnBackInvokedCallback.

यूज़र इंटरफ़ेस (यूआई) की उस स्थिति का पता लगाएं जो हर कॉलबैक को चालू और बंद करती है

यूज़र इंटरफ़ेस (यूआई) की स्थिति, यूज़र इंटरफ़ेस (यूआई) की जानकारी देने वाली प्रॉपर्टी है. हमारा सुझाव है कि आप ये ज़रूरी चरण अपनाएं.

  1. हर कॉलबैक को चालू और बंद करने वाली यूज़र इंटरफ़ेस (यूआई) स्थिति तय करें.

  2. निगरानी करने वाला डेटा होल्डर टाइप, जैसे कि StateFlow या कंपोज़ स्टेट का इस्तेमाल करके यह स्थिति तय करें. साथ ही, स्थिति बदलने पर कॉलबैक को चालू या बंद करें.

अगर आपका ऐप्लिकेशन पहले से ही, बैक लॉजिक को शर्तों वाले स्टेटमेंट से जोड़ रहा था, तो इसका मतलब है कि आपने बैक इवेंट के होने के बाद, उस पर कार्रवाई की है. नए कॉलबैक वाले इस पैटर्न से बचें. अगर हो सके, तो कॉलबैक को कंडीशनल स्टेटमेंट से बाहर ले जाएं और इसके बजाय, कॉलबैक को ऐसे डेटा होल्डर टाइप से जोड़ें जिसे निगरानी की जा सकती है.

यूज़र इंटरफ़ेस (यूआई) लॉजिक के लिए, सिस्टम के बैक कॉलबैक का इस्तेमाल करना

यूज़र इंटरफ़ेस (यूआई) लॉजिक बताता है कि यूज़र इंटरफ़ेस (यूआई) कैसे दिखाया जाए. यूआई लॉजिक चलाने के लिए, सिस्टम बैक कॉलबैक का इस्तेमाल करें. जैसे, कोई पॉप-अप दिखाना या ऐनिमेशन चलाना.

अगर आपका ऐप्लिकेशन, सिस्टम के बैक कॉलबैक को चालू करता है, तो प्रिडिक्टिव ऐनिमेशन नहीं चलते और आपको बैक इवेंट को मैनेज करना होगा. सिर्फ़ यूज़र इंटरफ़ेस (यूआई) से जुड़े लॉजिक को चलाने के लिए, कॉलबैक न बनाएं.

उदाहरण के लिए, अगर सिर्फ़ लॉग करने के लिए बैक इवेंट को इंटरसेप्ट किया जा रहा है, तो इसके बजाय ऐक्टिविटी या फ़्रैगमेंट लाइफ़साइकल में लॉग करें.

  • ऐक्टिविटी से ऐक्टिविटी या फ़्रैगमेंट से ऐक्टिविटी के मामलों के लिए, लॉग करें कि onDestroy में मौजूद isFinishing, ऐक्टिविटी के लाइफ़साइकल में true है या नहीं.
  • फ़्रैगमेंट-टू-फ़्रैगमेंट वाले मामलों के लिए, लॉग करें अगर onDestroy में मौजूद isRemoving, फ़्रैगमेंट के व्यू लाइफ़साइकल में सही है. या FragmentManager.OnBackStackChangedListener में onBackStackChangeStarted या onBackStackChangeCommitted तरीके का इस्तेमाल करके लॉग करें.

Compose के केस के लिए, Compose के डेस्टिनेशन से जुड़े ViewModel के onCleared() कॉलबैक में लॉग करें. यह जानने का सबसे अच्छा तरीका है कि मैसेज लिखने के लिए चुना गया डेस्टिनेशन, बैक स्टैक से कब हटाया गया और मिटाया गया.

एक ही ज़िम्मेदारी वाले कॉलबैक बनाना

आप डिस्पैचर में एक से ज़्यादा कॉलबैक जोड़ सकते हैं. कॉलबैक को एक स्टैक में जोड़ा जाता है. इसमें, आखिरी बार जोड़ा गया चालू कॉलबैक, अगले बैक जेस्चर को हैंडल करता है. हर बैक जेस्चर के लिए एक कॉलबैक होता है.

अगर कॉलबैक के लिए एक ही ज़िम्मेदारी है, तो चालू की गई कॉलबैक की स्थिति को मैनेज करना आसान होता है. उदाहरण के लिए:

स्टैक में कॉलबैक का क्रम.
दूसरी इमेज. कॉलबैक स्टैक डायग्राम.

दूसरी इमेज में दिखाया गया है कि स्टैक में एक से ज़्यादा कॉलबैक कैसे किए जा सकते हैं. इनमें से हर एक कॉलबैक को एक वैल्यू दी जाती है. कॉलबैक सिर्फ़ तब काम करता है, जब स्टैक में उसके ऊपर मौजूद कॉलबैक बंद हों. इस उदाहरण में, जब उपयोगकर्ता किसी फ़ॉर्म में डेटा डालता है, तो "क्या आपको यकीन है..." कॉलबैक चालू होता है. इसके अलावा, किसी भी दूसरी स्थिति में यह कॉलबैक बंद रहता है. जब उपयोगकर्ता फ़ॉर्म से बाहर निकलने के लिए, पीछे की ओर स्वाइप करता है, तो कॉलबैक की मदद से पुष्टि करने वाला डायलॉग बॉक्स खुलता है.

दूसरे कॉलबैक में, ऐसा मटीरियल कॉम्पोनेंट शामिल किया जा सकता है जो अनुमानित स्क्रीन पर वापस जाने की सुविधा के साथ काम करता हो. इसके अलावा, इसमें Progress API का इस्तेमाल करके AndroidX ट्रांज़िशन या कोई अन्य कस्टम कॉलबैक भी शामिल किया जा सकता है.

childFragmentManager का कॉलबैक तब चलता है, जब ऊपर दिए गए कॉलबैक बंद हों और इस FragmentManager के लिए बैक स्टैक खाली न हो, जहां childFragmentManager किसी फ़्रैगमेंट में अटैच हो. इस उदाहरण में, यह इंटरनल कॉलबैक बंद है.

इसी तरह, supportFragmentManager का इंटरनल कॉलबैक तब चलता है, जब ऊपर दिए गए कॉलबैक बंद हों और उसका स्टैक खाली न हो. नेविगेशन के लिए FragmentManager या NavigationComponent का इस्तेमाल करने पर, यह व्यवहार एक जैसा रहता है, क्योंकि NavigationComponent, FragmentManager पर निर्भर करता है. इस उदाहरण में, यह कॉलबैक तब चलता है, जब उपयोगकर्ता ने फ़ॉर्म में टेक्स्ट डाला हो. इससे, "क्या आपको यकीन है..." कॉलबैक बंद हो जाता है.

आखिर में, super.onBackPressed()सिस्टम-लेवल का कॉलबैक है, जो ऊपर दिए गए कॉलबैक के बंद होने पर फिर से चलता है. होम स्क्रीन पर वापस जाने, एक गतिविधि से दूसरी गतिविधि पर जाने, और एक टास्क से दूसरे टास्क पर जाने जैसे सिस्टम ऐनिमेशन को ट्रिगर करने के लिए, supportFragmentManager का बैक स्टैक खाली होना चाहिए, ताकि उसका इंटरनल कॉलबैक बंद हो जाए.

पिछले जेस्चर के ऐनिमेशन की जांच करें

अगर अब भी Android 13 या Android 14 का इस्तेमाल किया जा रहा है, तो इमेज 1 में दिखाए गए, होम पेज पर वापस जाने वाले ऐनिमेशन की जांच की जा सकती है.

इस ऐनिमेशन की जांच करने के लिए, यह तरीका अपनाएं:

  1. अपने डिवाइस पर, सेटिंग > सिस्टम > डेवलपर के लिए सेटिंग और टूल पर जाएं.

  2. प्रिडिक्टिव बैक ऐनिमेशन चुनें.

  3. अपडेट किया गया ऐप्लिकेशन लॉन्च करें और बैक जेस्चर का इस्तेमाल करके, यह देखें कि यह कैसे काम करता है.