
ভবিষ্যদ্বাণীমূলক পিছনে, একটি অঙ্গভঙ্গি নেভিগেশন বৈশিষ্ট্য, ব্যবহারকারীদের পূর্বরূপ দেখতে দেয় যেখানে পিছনের সোয়াইপ তাদের নিয়ে যায়।
উদাহরণস্বরূপ, একটি পিছনের অঙ্গভঙ্গি ব্যবহার করে আপনার অ্যাপের পিছনে হোম স্ক্রিনের একটি অ্যানিমেটেড প্রিভিউ দেখাতে পারে, যেমনটি চিত্র 1-এ উপস্থাপিত হয়েছে৷
অ্যান্ড্রয়েড 15 দিয়ে শুরু করে, ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশনের জন্য বিকাশকারী বিকল্পটি আর উপলব্ধ নেই। সিস্টেম অ্যানিমেশন যেমন ব্যাক-টু-হোম, ক্রস-টাস্ক, এবং ক্রস-অ্যাক্টিভিটি এখন এমন অ্যাপগুলির জন্য উপস্থিত হয় যেগুলি সম্পূর্ণরূপে বা কোনও কার্যকলাপ স্তরে পূর্বাভাসমূলক ব্যাক জেসচারে বেছে নিয়েছে৷
আপনি এই ব্যাক-টু-হোম অ্যানিমেশনটি পরীক্ষা করতে পারেন (যেমন এই পৃষ্ঠার নিম্নলিখিত বিভাগে বর্ণিত হয়েছে)।
ভবিষ্যদ্বাণীমূলক ব্যাক জেসচার সমর্থন করার জন্য আপনার অ্যাপ আপডেট করতে হবে, ব্যাকওয়ার্ড সামঞ্জস্যপূর্ণ OnBackPressedCallback AppCompat 1.6.0-alpha05 (AndroidX) বা উচ্চতর API ব্যবহার করে, অথবা নতুন OnBackInvokedCallback প্ল্যাটফর্ম API ব্যবহার করে। বেশিরভাগ অ্যাপই ব্যাকওয়ার্ড সামঞ্জস্যপূর্ণ AndroidX API ব্যবহার করে।
এই আপডেটটি ব্যাক নেভিগেশনকে সঠিকভাবে ইন্টারসেপ্ট করার জন্য একটি মাইগ্রেশন পাথ প্রদান করে, যার মধ্যে KeyEvent.KEYCODE_BACK থেকে ব্যাক ইন্টারসেপশন প্রতিস্থাপন করা হয় এবং নতুন সিস্টেম ব্যাক এপিআই-এর সাথে Activity এবং Dialog মতো onBackPressed পদ্ধতি সহ যেকোনো ক্লাস প্রতিস্থাপন করা হয়।
কোডল্যাব এবং Google I/O ভিডিও
এই পৃষ্ঠায় এই ডকুমেন্টেশন ব্যবহার করার পাশাপাশি, আমাদের কোডল্যাব ব্যবহার করে দেখুন । এটি AndroidX কার্যকলাপ API ব্যবহার করে ভবিষ্যদ্বাণীমূলক ব্যাক জেসচার পরিচালনা করে একটি WebView-এর একটি সাধারণ ব্যবহার-কেস বাস্তবায়ন প্রদান করে।
এছাড়াও আপনি আমাদের Google I/O ভিডিও দেখতে পারেন, যা AndroidX এবং প্ল্যাটফর্ম APIs বাস্তবায়নের অতিরিক্ত উদাহরণ কভার করে।
ডিফল্ট ব্যাক নেভিগেশন ব্যবহার করে এমন একটি অ্যাপ আপডেট করুন
পূর্বাভাসমূলক ফিরে ডিফল্টরূপে সক্রিয় করা হয়.
যদি আপনার অ্যাপটি ফ্র্যাগমেন্টস বা নেভিগেশন কম্পোনেন্ট ব্যবহার করে, তাহলে AndroidX Activity 1.6.0-alpha05 বা উচ্চতর সংস্করণেও আপগ্রেড করুন।
কাস্টম ব্যাক নেভিগেশন ব্যবহার করে এমন একটি অ্যাপ আপডেট করুন
যদি আপনার অ্যাপটি কাস্টম ব্যাক আচরণ প্রয়োগ করে, তবে এটি AndroidX ব্যবহার করে কিনা এবং এটি কীভাবে ব্যাক নেভিগেশন পরিচালনা করে তার উপর নির্ভর করে বিভিন্ন মাইগ্রেশন পাথ রয়েছে।
| আপনার অ্যাপ AndroidX ব্যবহার করে | কীভাবে আপনার অ্যাপ ব্যাক নেভিগেশন পরিচালনা করে | প্রস্তাবিত মাইগ্রেশন পথ (এই পৃষ্ঠার লিঙ্ক) |
| হ্যাঁ | AndroidX APIs | একটি বিদ্যমান AndroidX ব্যাক বাস্তবায়ন স্থানান্তর করুন |
| অসমর্থিত প্ল্যাটফর্ম API | AndroidX API-এ অসমর্থিত ব্যাক নেভিগেশন API সমন্বিত একটি AndroidX অ্যাপ স্থানান্তর করুন | |
| না | অসমর্থিত প্ল্যাটফর্ম API, স্থানান্তর করতে সক্ষম | প্ল্যাটফর্ম API-এ অসমর্থিত ব্যাক নেভিগেশন API ব্যবহার করে এমন একটি অ্যাপ স্থানান্তর করুন |
| অসমর্থিত প্ল্যাটফর্ম API, কিন্তু স্থানান্তর করতে অক্ষম | আপনার অ্যাপের AndroidManifest.xml ফাইলের <application> বা <activity> ট্যাগে android:enableOnBackInvokedCallback অ্যাট্রিবিউটটিকে false সেট করে সাময়িকভাবে অপ্ট-আউট করুন। |
একটি AndroidX ব্যাক নেভিগেশন বাস্তবায়ন স্থানান্তর করুন
এই ব্যবহারের ক্ষেত্রে সবচেয়ে সাধারণ (এবং সবচেয়ে প্রস্তাবিত)। এটি নতুন বা বিদ্যমান অ্যাপগুলির ক্ষেত্রে প্রযোজ্য যেগুলি OnBackPressedDispatcher সাথে কাস্টম অঙ্গভঙ্গি নেভিগেশন হ্যান্ডলিং প্রয়োগ করে, যেমনটি কাস্টম ব্যাক নেভিগেশন প্রদানে বর্ণিত হয়েছে৷
যে APIগুলি ইতিমধ্যেই OnBackPressedDispatcher ব্যবহার করছে (যেমন ফ্র্যাগমেন্টস এবং নেভিগেশন কম্পোনেন্ট) ভবিষ্যদ্বাণীমূলক ব্যাক জেসচারের সাথে নির্বিঘ্নে কাজ করে তা নিশ্চিত করতে, AndroidX Activity 1.6.0-alpha05- এ আপগ্রেড করুন।
```xml
// In your build.gradle file:
dependencies {
// Add this in addition to your other dependencies
implementation "androidx.activity:activity:1.6.0-alpha05"
```
AndroidX API-এ অসমর্থিত ব্যাক নেভিগেশন API সমন্বিত একটি AndroidX অ্যাপ স্থানান্তর করুন
যদি আপনার অ্যাপটি AndroidX লাইব্রেরি ব্যবহার করে কিন্তু অসমর্থিত ব্যাক নেভিগেশন APIগুলিকে প্রয়োগ করে বা রেফারেন্স করে, তাহলে নতুন আচরণ সমর্থন করার জন্য আপনাকে AndroidX API ব্যবহার করে মাইগ্রেট করতে হবে।
অসমর্থিত APIগুলিকে AndroidX APIগুলিতে স্থানান্তর করতে:
OnBackPressedCallbackএর একটি বাস্তবায়নের সাথে AndroidX-এরOnBackPressedDispatcherএ আপনার সিস্টেম ব্যাক হ্যান্ডলিং লজিক মাইগ্রেট করুন। বিস্তারিত নির্দেশনার জন্য, কাস্টম ব্যাক নেভিগেশন প্রদান দেখুন।পিছনের অঙ্গভঙ্গি বাধা দেওয়া বন্ধ করার জন্য প্রস্তুত হলে
OnBackPressedCallbackঅক্ষম করুন৷OnBackPressedবাKeyEvent.KEYCODE_BACKএর মাধ্যমে ব্যাক ইভেন্টে বাধা দেওয়া বন্ধ করুন।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"
প্ল্যাটফর্ম API-এ অসমর্থিত ব্যাক নেভিগেশন API ব্যবহার করে এমন একটি অ্যাপ স্থানান্তর করুন
যদি আপনার অ্যাপ AndroidX লাইব্রেরি ব্যবহার করতে না পারে এবং পরিবর্তে অসমর্থিত API ব্যবহার করে কাস্টম ব্যাক নেভিগেশন প্রয়োগ করে বা রেফারেন্স করে, তাহলে আপনাকে অবশ্যই OnBackInvokedCallback প্ল্যাটফর্ম API-এ স্থানান্তর করতে হবে।
প্ল্যাটফর্ম API-এ অসমর্থিত APIগুলি স্থানান্তর করতে নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:
অ্যান্ড্রয়েড 13 বা উচ্চতর সংস্করণে চলমান ডিভাইসগুলিতে নতুন
OnBackInvokedCallbackAPI ব্যবহার করুন এবং Android 12 বা তার পরবর্তী সংস্করণে চলমান ডিভাইসগুলিতে অসমর্থিত APIগুলির উপর নির্ভর করুন৷OnBackInvokedCallbackএonBackInvokedDispatcherএর সাথে আপনার কাস্টম ব্যাক লজিক নিবন্ধন করুন। এটি বর্তমান কার্যকলাপকে সমাপ্ত হতে বাধা দেয় এবং ব্যবহারকারী সিস্টেম ব্যাক নেভিগেশন সম্পূর্ণ করলে আপনার কলব্যাক ব্যাক অ্যাকশনে প্রতিক্রিয়া জানানোর সুযোগ পায়।পিছনের অঙ্গভঙ্গি বাধা দেওয়া বন্ধ করার জন্য প্রস্তুত হলে
OnBackInvokedCallbackনিবন্ধনমুক্ত করুন৷ অন্যথায়, ব্যবহারকারীরা একটি সিস্টেম ব্যাক নেভিগেশন ব্যবহার করার সময় অবাঞ্ছিত আচরণ দেখতে পারে—উদাহরণস্বরূপ, ভিউগুলির মধ্যে "আটকে যাওয়া" এবং তাদের আপনার অ্যাপটি ছেড়ে দিতে বাধ্য করা।onBackPressedথেকে যুক্তিকে কীভাবে স্থানান্তর করা যায় তার একটি উদাহরণ এখানে রয়েছে:কোটলিন
@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) */ } } }
জাভা
@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) */ } ); } }
Android 13 এবং পরবর্তী সংস্করণের জন্য
OnBackPressedবাKeyEvent.KEYCODE_BACKব্যবহার করে ব্যাক ইভেন্টে বাধা দেওয়া বন্ধ করুন।
আপনি PRIORITY_DEFAULT বা PRIORITY_OVERLAY সাথে একটি OnBackInvokedCallback নিবন্ধন করতে পারেন, যা অনুরূপ AndroidX OnBackPressedCallback এ উপলব্ধ নয়৷ PRIORITY_OVERLAY এর সাথে একটি কলব্যাক নিবন্ধন করা কিছু ক্ষেত্রে সহায়ক৷
এটি প্রযোজ্য হয় যখন আপনি onKeyPreIme() থেকে স্থানান্তরিত হন এবং আপনার কলব্যাকে একটি খোলা IME এর পরিবর্তে পিছনের অঙ্গভঙ্গি গ্রহণ করতে হবে৷ IME গুলি খোলার সময় PRIORITY_DEFAULT দিয়ে কলব্যাক নিবন্ধন করে৷ OnBackInvokedDispatcher ওপেন IME-এর পরিবর্তে আপনার কলব্যাকে পিছনের অঙ্গভঙ্গি প্রেরণ করে তা নিশ্চিত করতে PRIORITY_OVERLAY সাথে আপনার কলব্যাক নিবন্ধন করুন৷
ভবিষ্যদ্বাণীপূর্ণ ফিরে অপ্ট আউট
অপ্ট আউট করতে, AndroidManifest.xml এ, <application> ট্যাগে, android:enableOnBackInvokedCallback পতাকাটিকে false সেট করুন।
<application
...
android:enableOnBackInvokedCallback="false"
... >
...
</application>
এটি মিথ্যাতে সেট করা নিম্নলিখিতগুলি করে:
- ভবিষ্যদ্বাণীমূলক ব্যাক জেসচার সিস্টেম অ্যানিমেশন অক্ষম করে৷
-
OnBackInvokedCallbackউপেক্ষা করে, কিন্তুOnBackPressedCallbackকলগুলি কাজ করতে থাকে৷
একটি কার্যকলাপ স্তরে অপ্ট আউট
android:enableOnBackInvokedCallback পতাকা আপনাকে কার্যকলাপ স্তরে ভবিষ্যদ্বাণীমূলক সিস্টেম অ্যানিমেশন থেকে অপ্ট আউট করতে দেয়৷ এই আচরণটি বৃহৎ মাল্টি-অ্যাক্টিভিটি অ্যাপগুলিকে ভবিষ্যদ্বাণীমূলক ব্যাক জেসচারে স্থানান্তর করা আরও পরিচালনাযোগ্য করে তোলে।
নিম্নলিখিত কোডটি 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>
android:enableOnBackInvokedCallback পতাকা ব্যবহার করার সময় নিম্নলিখিত বিবেচনাগুলি মনে রাখবেন:
-
android:enableOnBackInvokedCallback=falseসেট করা হল অ্যাক্টিভিটি লেভেলে বা অ্যাপ লেভেলে ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশন বন্ধ করে, যেখানে আপনি ট্যাগ সেট করেছেন তার উপর নির্ভর করে, এবং সিস্টেমকেOnBackInvokedCallbackপ্ল্যাটফর্ম API-এ কলগুলি উপেক্ষা করার নির্দেশ দেয়৷ যাইহোক,OnBackPressedCallbackএ কলগুলি চলতে থাকে কারণOnBackPressedCallbackব্যাকওয়ার্ড সামঞ্জস্যপূর্ণ এবংonBackPressedAPI-কে কল করে, যা Android 13-এর আগে অসমর্থিত। - অ্যাপ স্তরে
enableOnBackInvokedCallbackপতাকা সেট করা অ্যাপের সমস্ত কার্যকলাপের জন্য ডিফল্ট মান স্থাপন করে। পূর্ববর্তী কোড উদাহরণে দেখানো হিসাবে, কার্যকলাপ স্তরে পতাকা সেট করে আপনি প্রতি কার্যকলাপ ডিফল্ট ওভাররাইড করতে পারেন।
কলব্যাক সেরা অনুশীলন
সমর্থিত সিস্টেম ব্যাক কলব্যাক ব্যবহার করার জন্য এখানে সেরা অনুশীলনগুলি রয়েছে; BackHandler (কম্পোজের জন্য), OnBackPressedCallback , বা OnBackInvokedCallback ।
UI অবস্থা নির্ধারণ করুন যা প্রতিটি কলব্যাককে সক্ষম এবং নিষ্ক্রিয় করে
UI স্টেট হল একটি সম্পত্তি যা UI বর্ণনা করে। আমরা এই উচ্চ-স্তরের পদক্ষেপগুলি অনুসরণ করার পরামর্শ দিই।
UI অবস্থা নির্ধারণ করুন যা প্রতিটি কলব্যাককে সক্ষম এবং নিষ্ক্রিয় করে।
StateFlowবা কম্পোজ স্টেটের মতো একটি পর্যবেক্ষণযোগ্য ডেটা হোল্ডার টাইপ ব্যবহার করে সেই স্টেটটিকে সংজ্ঞায়িত করুন এবং স্টেট পরিবর্তনের সাথে সাথে কলব্যাক সক্রিয় বা অক্ষম করুন।
যদি আপনার অ্যাপ পূর্বে শর্তসাপেক্ষ বিবৃতিগুলির সাথে ব্যাক লজিক যুক্ত করে থাকে, তাহলে এটি ইঙ্গিত দিতে পারে যে আপনি পিছনের ইভেন্টটি ইতিমধ্যে ঘটে যাওয়ার পরে প্রতিক্রিয়া জানাচ্ছেন। নতুন কলব্যাকের সাথে এই প্যাটার্ন এড়িয়ে চলুন। যদি সম্ভব হয়, কলব্যাকটিকে শর্তসাপেক্ষ বিবৃতির বাইরে নিয়ে যান এবং পরিবর্তে একটি পর্যবেক্ষণযোগ্য ডেটা হোল্ডার টাইপের সাথে কলব্যাকটিকে সংযুক্ত করুন৷
UI লজিকের জন্য সিস্টেম ব্যাক কলব্যাক ব্যবহার করুন
UI যুক্তি নির্দেশ করে কিভাবে UI প্রদর্শন করতে হয়। UI লজিক চালানোর জন্য সিস্টেম ব্যাক কলব্যাক ব্যবহার করুন, যেমন একটি ডায়ালগ প্রদর্শন করা বা একটি অ্যানিমেশন চালানো।
যদি আপনার অ্যাপটি PRIORITY_DEFAULT বা PRIORITY_OVERLAY সহ একটি OnBackPressedCallback বা একটি OnBackInvokedCallback সক্ষম করে, তাহলে পূর্বাভাসমূলক ব্যাক অ্যানিমেশনগুলি চলবে না এবং আপনাকে অবশ্যই পিছনের ইভেন্টটি পরিচালনা করতে হবে৷ ব্যবসায়িক যুক্তি চালাতে বা লগ করতে এই কলব্যাকগুলি তৈরি করবেন না।
নিম্নলিখিত পদ্ধতিগুলি ব্যবহার করুন যদি আপনার অ্যাপটি ব্যবসায়িক যুক্তি চালাতে হয় বা ব্যবহারকারী যখন ফিরে সোয়াইপ করে তখন লগ করতে হয়:
-
PRIORITY_SYSTEM_NAVIGATION_OBSERVERএর সাথেOnBackInvokedCallbackব্যবহার করুন Android 16 এবং উচ্চতর সংস্করণে চলমান ডিভাইসগুলিতে৷ এটি একটি পর্যবেক্ষক-কলব্যাক তৈরি করে যা পিছনের ঘটনাকে গ্রাস করে না। উদাহরণস্বরূপ, আপনি এই কলব্যাকটি নিবন্ধন করতে পারেন যখন ব্যবহারকারী রুট কার্যকলাপ থেকে ফিরে সোয়াইপ করে, বা অন্য কথায়, যখন ব্যবহারকারী আপনার অ্যাপ ছেড়ে চলে যায়। এই ক্ষেত্রে, আপনি ব্যাক ইভেন্টটি লগ করতে পারেন বা অন্য ব্যবসায়িক যুক্তি চালাতে পারেন এবং ব্যাক-টু-হোম অ্যানিমেশন এখনও চলবে৷ - অ্যাক্টিভিটি-টু-অ্যাক্টিভিটি কেস বা ফ্র্যাগমেন্ট-টু-অ্যাক্টিভিটি ক্ষেত্রে, লগ ইন করুন যদি
onDestroyমধ্যেisFinishingঅ্যাক্টিভিটি জীবনচক্রের মধ্যেtrueহয়। - ফ্র্যাগমেন্ট-টু-ফ্র্যাগমেন্ট ক্ষেত্রে, লগ করুন যদি
onDestroyমধ্যেisRemovingফ্র্যাগমেন্টের ভিউ লাইফসাইকেলের মধ্যে সত্য। অথবাFragmentManager.OnBackStackChangedListenerমধ্যেonBackStackChangeStartedবাonBackStackChangeCommittedপদ্ধতি ব্যবহার করে লগ করুন। - রচনার ক্ষেত্রে, রচনা গন্তব্যের সাথে যুক্ত একটি
ViewModelonCleared()কলব্যাকের মধ্যে লগ করুন৷ যখন একটি রচনা গন্তব্য ব্যাক স্ট্যাকের থেকে পপ করা হয় এবং ধ্বংস হয় তখন এটি জানার জন্য এটি সর্বোত্তম সংকেত।
একক দায়িত্ব কলব্যাক তৈরি করুন
আপনি প্রেরণকারীতে একাধিক কলব্যাক যোগ করতে পারেন। কলব্যাকগুলি একটি স্ট্যাকে যোগ করা হয় যেখানে শেষ যোগ করা কলব্যাকটি পরবর্তী ব্যাক জেসচার প্রতি ব্যাক জেসচারে একটি কলব্যাক দিয়ে পরিচালনা করে।
কলব্যাকের সক্রিয় অবস্থা পরিচালনা করা সহজ যদি সেই কলব্যাকের একক দায়িত্ব থাকে। যেমন:

চিত্র 2 দেখায় কিভাবে আপনি স্ট্যাকে একাধিক কলব্যাক রাখতে পারেন, প্রতিটি একটি জিনিসের জন্য দায়ী। একটি কলব্যাক কেবল তখনই চলে যদি স্ট্যাকের উপরে থাকা কলব্যাকগুলি অক্ষম থাকে৷ এই উদাহরণে, "আপনি কি নিশ্চিত..." কলব্যাক সক্ষম হয় যখন ব্যবহারকারী একটি ফর্মে ডেটা প্রবেশ করে, এবং অন্যথায় অক্ষম করা হয়৷ যখন ব্যবহারকারী ফর্ম থেকে প্রস্থান করতে ফিরে সোয়াইপ করে তখন কলব্যাক একটি নিশ্চিতকরণ ডায়ালগ খোলে।
অন্যান্য কলব্যাকে একটি উপাদান উপাদান অন্তর্ভুক্ত থাকতে পারে যা ভবিষ্যদ্বাণীমূলক ব্যাক সমর্থন করে, অগ্রগতি API ব্যবহার করে একটি AndroidX রূপান্তর বা অন্য কাস্টম কলব্যাক।
উপরের কলব্যাকগুলি অক্ষম থাকলে এবং এই FragmentManager ব্যাক স্ট্যাক খালি না থাকলে একটি childFragmentManager কলব্যাক চলে, যেখানে childFragmentManager একটি ফ্র্যাগমেন্টের মধ্যে সংযুক্ত থাকে। এই উদাহরণে, এই অভ্যন্তরীণ কলব্যাক অক্ষম করা হয়েছে৷
একইভাবে, supportFragmentManager এর অভ্যন্তরীণ কলব্যাক চলে যদি উপরের কলব্যাকগুলি নিষ্ক্রিয় থাকে এবং এর স্ট্যাক খালি না থাকে। নেভিগেশনের জন্য FragmentManager বা NavigationComponent ব্যবহার করার সময় এই আচরণটি সামঞ্জস্যপূর্ণ, কারণ NavigationComponent FragmentManager উপর নির্ভর করে। এই উদাহরণে, ব্যবহারকারী যদি "আপনি কি নিশ্চিত..." কলব্যাক অক্ষম করে ফর্মে পাঠ্য না লিখলে এই কলব্যাক চলে।
অবশেষে, super.onBackPressed() হল সিস্টেম-স্তরের কলব্যাক, যেটি আবার চলে যদি উপরের কলব্যাকগুলি নিষ্ক্রিয় থাকে। ব্যাক-টু-হোম, ক্রস-অ্যাক্টিভিটি এবং ক্রস-টাস্কের মতো সিস্টেম অ্যানিমেশনগুলিকে ট্রিগার করার জন্য, supportFragmentManager এর ব্যাক স্ট্যাক খালি থাকতে হবে যাতে এর অভ্যন্তরীণ কলব্যাক অক্ষম করা হয়।
ভবিষ্যদ্বাণীমূলক ব্যাক জেসচার অ্যানিমেশন পরীক্ষা করুন
আপনি যদি এখনও Android 13 বা Android 14 ব্যবহার করেন, তাহলে আপনি চিত্র 1-এ দেখানো ব্যাক-টু-হোম অ্যানিমেশন পরীক্ষা করতে পারেন।
এই অ্যানিমেশন পরীক্ষা করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:
আপনার ডিভাইসে, সেটিংস > সিস্টেম > বিকাশকারী বিকল্পগুলিতে যান।
ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশন নির্বাচন করুন।
আপনার আপডেট করা অ্যাপটি চালু করুন এবং এটিকে কার্যকর দেখতে পিছনের অঙ্গভঙ্গিটি ব্যবহার করুন৷