প্রথমত, রক্ষিত টুকরোগুলিতে আমার পোস্টটি দেখুন । এটি সাহায্য করতে পারে।
এখন আপনার প্রশ্নের উত্তর দিতে:
টুকরা তার ধরে রাখা যায় দৃশ্য রাজ্য অথবা এই কনফিগারেশন পরিবর্তন recreated করা হবে - কি ঠিক হল "অপরিবর্তিত রাখা"?
হ্যাঁ, Fragment
কনফিগারেশন পরিবর্তন জুড়ে এর রাজ্য ধরে রাখা হবে। বিশেষত, "ধরে রাখা" এর অর্থ হ'ল কনফিগারেশনের পরিবর্তনের ফলে খণ্ডটি বিনষ্ট হবে না । অর্থাৎ Fragment
করা হবে অপরিবর্তিত রাখা এমনকি যদি কনফিগারেশন পরিবর্তন অন্তর্নিহিত কারণ Activity
ধ্বংস হয়ে যাবে।
ব্যবহারকারী ক্রিয়াকলাপটি ছেড়ে দিলে খণ্ডটি কি ধ্বংস হয়ে যাবে?
মেমরির সংস্থানগুলি কম থাকলে ঠিক যেমন Activity
s, Fragment
গুলি সিস্টেম দ্বারা ধ্বংস হয়ে যেতে পারে। আপনার টুকরোগুলি কনফিগারেশনের পরিবর্তনগুলি জুড়ে তাদের পরিস্থিতি স্থিতি বজায় রাখুক না কেন Fragment
আপনি একবার ছেড়ে যাওয়ার পরে সিস্টেমটি ধ্বংস করবে কিনা তার কোনও প্রভাব পড়বে না Activity
। যদি আপনি এটি ছেড়ে যান Activity
(অর্থাত্ হোম বোতাম টিপে), এর Fragment
গুলি ধ্বংস হতে পারে বা নাও হতে পারে। আপনি যদি Activity
পিছনের বোতামটি টিপে এইটি ছেড়ে যান (সুতরাং, কল করে finish()
এবং কার্যকরভাবে ধ্বংস করে Activity
), Activity
সংযুক্ত সমস্ত গুলিও Fragment
ধ্বংস হয়ে যাবে।
এটি পিছনের স্ট্যাকের টুকরো দিয়ে কেন কাজ করে না?
বোধহয় কেন এটা সমর্থন করে না এর একাধিক কারণ আছে, কিন্তু আমার কাছে সবচেয়ে সুস্পষ্ট কারণ যে Activity
একটি রেফারেন্স ঝুলিতে FragmentManager
, এবং FragmentManager
backstack পরিচালনা করে। এটি হ'ল, যদি আপনি নিজের অবস্থান ধরে রাখতে চান Fragment
বা না করেন তবে কনফিগারেশনের পরিবর্তনে Activity
(এবং এইভাবেই FragmentManager
এর পিছনের দিক) ধ্বংস হয়ে যাবে। অন্য কারণ কেন এটিকে কাজ নাও করতে পারে কারণ কিছু বিভ্রান্তিকর হতে পারে উভয় অপরিবর্তিত রাখা টুকরা এবং অ অপরিবর্তিত রাখা টুকরা একই backstack উপস্থিত করার অনুমতি দেওয়া হয়েছে।
কোনটি ব্যবহারের ক্ষেত্রে এই পদ্ধতিটি ব্যবহার করে বোঝা যায়?
পুনরায় টুকরো টুকরো করা ক্রিয়াকলাপের দৃষ্টান্ত জুড়ে রাষ্ট্রের তথ্য - বিশেষত থ্রেড ম্যানেজমেন্টের প্রচারের জন্য বেশ কার্যকর হতে পারে। উদাহরণস্বরূপ, কোনও খণ্ডটি এর ক্রিয়াকলাপ পরিচালনা করে Thread
বা এর উদাহরণ হিসাবে হোস্ট হিসাবে পরিবেশন করতে পারে AsyncTask
। দেখুন আমার ব্লগ পোস্ট আরো তথ্যের জন্য এই বিষয়ে।
সাধারণভাবে, আমি এটির onConfigurationChanged
সাথে Activity
এটি ব্যবহার করার মতোই ব্যবহার করব ... এটি কোনও বানডাইড হিসাবে ব্যবহার করবেন না কারণ আপনি কোনও ওরিয়েন্টেশন পরিবর্তন সঠিকভাবে প্রয়োগ / পরিচালনা করতে খুব অলস are আপনার প্রয়োজন হলে এটি ব্যবহার করুন।