টুকরাগুলিতে onCreate (), onCreateView () এবং onActivityCreated () এর পার্থক্য এবং ব্যবহার


329

মধ্যে পার্থক্য কি কি onCreate(), onCreateView()এবং onActivityCreated()টুকরা এবং কি তারা একে জন্য ব্যবহার করা যেতে পারে?



@ ব্র্যাডলারসন আমি বুঝতে পারি না কেন এটি বন্ধ করা হয়েছিল। এটি তুলনামূলকভাবে জনপ্রিয় প্রশ্ন হিসাবে প্রমাণিত হয়েছে এবং আপনার মন্তব্যে বর্ণিত লিঙ্কটি থেকে পৃথক। এই প্রশ্নটি তিনটি পৃথক পদ্ধতির মধ্যে পার্থক্যের জন্য জিজ্ঞাসা করছে এবং তারা একে অপরের সাথে কীভাবে তুলনা করে তবে আপনি যে মন্তব্যটি আপনার মন্তব্যে যুক্ত করেছেন কেবলমাত্র এই দুটি পদ্ধতির উল্লেখ করেছেন।
ফারবোদ সালামাত-জাদেহ

@ ব্র্যাডলারসন ফেয়ার পর্যাপ্ত এবং ভাল দাগযুক্ত। এখন যদিও আমার বোঝাপড়া আছে, আমি কি এমন উত্তর লিখতে পারি না যা আরও তিনটি পদ্ধতির তুলনায় আরও তথ্যের জন্য লিঙ্কগুলি উল্লেখ করে আরও ভালভাবে তুলনা করতে পারে?
ফারবোদ সালামাত-জাদেহ

2
@ ফারবডসালামাত-জাদেহ - অবশ্যই আমি প্রশ্নটি আবার খুললাম, যদি আপনি ভাবেন আপনি আরও ভাল উত্তর সরবরাহ করতে পারেন। আমি যদি এটি করতে পারি তবে উত্তরহীন হয়ে বসে থাকতে চাইনি।
ব্র্যাড লারসন

উত্তর:


394

onCreate ():

onCreate()একটি পদ্ধতি Fragmentহয় পরে বলা Activity'রonAttachFragment() কিন্তু আগে যে Fragmentএর onCreateView()
এই পদ্ধতিতে, আপনি ভেরিয়েবলগুলি বরাদ্দ করতে পারেন, Intentঅতিরিক্ত পেতে এবং অন্য যে কোনও কিছুতে যা ভিউ হায়ারার্কি (যেমন গ্রাফিকাল অ-সূচনাকরণ) জড়িত না । এর কারণ হল এই পদ্ধতি যখন বলা যেতে পারে হয় Activityএর onCreate()সম্পন্ন হয় নি, এবং তাই এখানে দেখতে অনুক্রমের অ্যাক্সেস করতে একটি ক্র্যাশ হতে পারে চেষ্টা করছে।

onCreateView ():

এর পরে onCreate()(ইন Fragment) বলা হওয়ার পরে , Fragmentএর onCreateView()ডাকা হয়। আপনি আপনার Viewভেরিয়েবলগুলি বরাদ্দ করতে এবং কোনও গ্রাফিকাল সূচনা করতে পারেন । আপনি Viewএই পদ্ধতিটি থেকে কোনও প্রত্যাবর্তন প্রত্যাশিত , এবং এটিই মূল ইউআই ভিউ, তবে আপনার Fragmentকোনও বিন্যাস বা গ্রাফিক্স ব্যবহার না করা nullহলে আপনি ফিরে আসতে পারেন (আপনি যদি ওভাররাইড না করেন তবে ডিফল্টরূপে ঘটে)।

onActivityCreated ():

নাম অনুসারে, এর কাজ শেষ হওয়ার পরে এটি ডাকা হয়ActivityonCreate() । এটি পরে বলা হয় onCreateView()এবং এটি চূড়ান্ত সূচনাতে ব্যবহৃত হয় (উদাহরণস্বরূপ, ইউআই উপাদানগুলি পরিবর্তন করা)।


সংক্ষেপে ...
... এগুলিকে সবাই ডাকা হয় Fragmentতবে বিভিন্ন সময়ে ডাকা হয়। প্রথম বলা হয়, কোনো অ-গ্রাফিকাল initialisations করছেন জন্য। এরপরে, আপনি যে কোনও ভেরিয়েবলটি ব্যবহার করতে চান তা নির্ধারণ এবং ঘোষণা করতে পারেন । এরপরে, সমস্ত কিছু শেষ হয়ে গেলে আপনি যে কোনও চূড়ান্ত সূচনা করতে চান তা ব্যবহার করুন।
onCreate()ViewonCreateView()onActivityCreated()


আপনি যদি অফিসিয়াল অ্যান্ড্রয়েড ডকুমেন্টেশন দেখতে চান তবে এটি এখানে পাওয়া যাবে:
- - -onCreate()
onCreateView()
onActivityCreated()

স্ট্যাক ওভারফ্লোতে এখানে কিছুটা পৃথক, তবে কম উন্নত প্রশ্ন / উত্তর রয়েছে:


6
আমি ভেবেছিলাম আমি অনক্রিয়েট () এ নন গ্রাফিকাল ইনিশিয়েশনগুলি প্রয়োগ করব যাতে স্ক্রিনটি ঘোরার সময় তাদের আর ডাকা হবে না। দেখা যাচ্ছে যে আমাকে ফ্রেগমেন্ট.সেটটেটইনস্ট্যান্স (সত্য) অন্যথায় কল করতে হবে অন্যথায় স্ক্রিনটি ঘোরানোর সময় অনক্রিট () এবং অনক্রিটভিউ () উভয়ই আবার কল করা হবে।
অভিশাপ শাকসবজি

অনক্রিয়েটভিউ () এ, ভিউ হায়ারার্কি অ্যাক্সেস করা কি নিরাপদ?
কোডি

@ কোডি আমি তাই বিশ্বাস করি - ভিউ হায়ারার্কি অ্যাক্সেস করা এর আসল উদ্দেশ্য onCreateView
ফারবোদ সালামাত-জাদেহ

1
তবে, ক্রিয়াকলাপের অনক্রিট () অ্যাক্টিভিটিক্রিটেড () না হওয়া পর্যন্ত শেষ হতে পারে? ভিয়ার ক্রমবিন্যাস অ্যাক্সেস করার জন্য কি অনক্রিটভিউতে ক্রাশ হওয়ার কোনও সম্ভাবনা রয়েছে? আমি নিশ্চিত নই যে অনক্রিটভিউ () / অনঅ্যাক্টিভিটি ক্রেইটেড () -এর মধ্যে পার্থক্য কী
কোডি

1
একটি জিনিস লক্ষ করুন (কমপক্ষে AppCompatActivity সহ) ক্রিয়াকলাপটি পুনঃনির্মাণ করা হলে (যেমন, ছোট ও নিহত হওয়ার পরে) অনক্রিট () ক্রিয়াকলাপ () এবং সুপার.অনক্রিয়েট () কার্যক্রম শেষ হওয়ার আগে কল করা হবে। আপনি যদি ডাগারের মতো কিছু ব্যবহার করে থাকেন এবং ইনজেকশন দেওয়া অভিভাবক ক্রিয়াকলাপে এমন কিছু অ্যাক্সেসের প্রয়োজন হয় তবে এটি একটি সমস্যা হতে পারে। এর একটি সমাধান হ'ল onActivityCreated () এ কোডটি রাখা যা যা সর্বদা অনক্রেট () নামে পরিচিত তাকে ডাকা হয়।
নিকোলাস

144

সংক্ষিপ্ত, চিত্রযুক্ত উত্তর খুঁজছেন যে কেউ জন্য:

এখানে চিত্র বর্ণনা লিখুন https://hanaskuliah.wordpress.com/2015/12/07/android-5-development-part-6-fragment/


এবং,

এখানে চিত্র বর্ণনা লিখুন


21
একমত। এই জাতীয় জিনিসের জন্য কমিক সানগুলি প্রয়োজনীয়
কার্তিক চুগ

1
একই চিত্রটিতে আমি প্রথমবারের মতো 3 টি বিভিন্ন ফন্ট দেখতে পেয়েছি এবং কোনওরকমে আমার জীবন এখন পুরোপুরি অনুভব করছে।
গিল

কখন কোন খণ্ড পুনরায় চালু হতে পারে?
সৌরভ

1
প্রক্রিয়াটি শেষ হয়ে গেলে কীভাবে খণ্ডটি পুনরায় তৈরি হবে না? আফাইক, কেবলমাত্র টাস্ক স্টেটটিকে একটি বান্ডিল হিসাবে সংরক্ষণ করা হয়েছে এবং এটি পুনরায় তৈরি করা হয়েছে অ্যাপটিকে আবার পূর্বাভাসে আনা হয়েছে।
stdout

6

onActivityCreated () - অবচয়

onActivityCreated()এখন টুকরো টুকরো সংস্করণ 1.3.0-alpha02 হিসাবে হ্রাস করা হয়েছে

OnActivityCreated () পদ্ধতিটি এখন অবচয় করা হয়েছে। টুকরাটির দৃশ্যের সাথে সম্পর্কিত কোডটি অনভিউক্রিয়েটেড () এ করা উচিত (যা onActivityCreated () এর আগে অবিলম্বে বলা হয়) এবং অন্যান্য সূচনা কোডটি অনক্রিট () এ হওয়া উচিত। ক্রিয়াকলাপের অনক্রিট () সম্পূর্ণ হওয়ার পরে একটি কলব্যাক পাওয়ার জন্য, লাইফসাইকেলসবার্সারটি অনটচ () এ ক্রিয়াকলাপের লাইফসাইকেলে নিবন্ধিত হওয়া এবং অনক্রিয়েট () কলব্যাক পাওয়ার পরে সরিয়ে ফেলা উচিত।

বিস্তারিত তথ্য এখানে পাওয়া যাবে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.