দ্রুত পটভূমি
ডিফল্টরূপে, যখন অ্যান্ড্রয়েডে নির্দিষ্ট কী কনফিগারেশন পরিবর্তন ঘটে (একটি সাধারণ উদাহরণ একটি ওরিয়েন্টেশন পরিবর্তন), এ জাতীয় পরিবর্তনগুলি সামঞ্জস্য করতে সহায়তা করার জন্য অ্যান্ড্রয়েড চলমান ক্রিয়াকলাপটিকে পুরোপুরি পুনরায় শুরু করে।
আপনি যখন android:configChanges="keyboardHidden|orientation"
আপনার অ্যান্ড্রয়েড ম্যানিফেস্টে সংজ্ঞায়িত করেন, আপনি অ্যান্ড্রয়েডকে বলছেন: "কীবোর্ডটি টানা না গেলে, বা ফোনটি ঘোরানো হলে দয়া করে ডিফল্ট পুনরায় সেট করবেন না; আমি নিজে এটি পরিচালনা করতে চাই Yes হ্যাঁ, আমি জানি আমি কী করছি "
এটি কি ভাল ব্যাপার? আমরা শীঘ্রই দেখতে পাবেন ...
কোন চিন্তা করো না?
আপনি যে উপকারগুলি দিয়ে শুরু করেন তার মধ্যে একটি হ'ল:
আপনার ক্রিয়াকলাপটি ঘোরানো হয়েছে তা নিয়ে চিন্তা করার দরকার নেই
অনেক ক্ষেত্রে লোকেরা ভুল করে বিশ্বাস করে যে যখন তাদের কোনও ত্রুটি রয়েছে যা একটি ওরিয়েন্টেশন পরিবর্তন ("রোটেশন") দ্বারা উত্পাদিত হচ্ছে তখন তারা কেবল এটিকে সংশোধন করতে পারে android:configChanges="keyboardHidden|orientation"
।
তবে, অ্যান্ড্রয়েড: কনফিগারেশনগুলি = "কীবোর্ডহাইডান | অভিযোজন" বান্দাইড ছাড়া আর কিছু নয়। সত্য সত্য, একটি কনফিগারেশন পরিবর্তন ট্রিগার হতে পারে অনেক উপায় আছে। উদাহরণস্বরূপ, যদি ব্যবহারকারী কোনও নতুন ভাষা বাছাই করে (যেমন স্থানীয়ভাবে পরিবর্তন হয়েছে), আপনার কার্যকলাপটি ওরিয়েন্টেশন পরিবর্তনের মাধ্যমে একইভাবে পুনরায় শুরু হবে। আপনি চাইলে বিভিন্ন ধরণের কনফিগার পরিবর্তনের একটি তালিকা দেখতে পারেন ।
সম্পাদনা : আরও গুরুত্বপূর্ণ বিষয়, যদিও হ্যাকবড মন্তব্যগুলিতে উল্লেখ করেছে, আপনার অ্যাপ্লিকেশন ব্যাকগ্রাউন্ডে থাকবে এবং অ্যান্ড্রয়েড এটিকে হত্যা করে কিছু স্মৃতি মুক্ত করার সিদ্ধান্ত নিলে আপনার কার্যকলাপটিও আবার শুরু হবে। যখন ব্যবহারকারী আপনার অ্যাপে ফিরে আসবে, অ্যান্ড্রয়েড অন্য কিছু কনফিগারেশন পরিবর্তন ঘটে থাকে একইভাবে কার্যকলাপটি পুনরায় আরম্ভ করার চেষ্টা করবে। যদি আপনি এটি পরিচালনা করতে না পারেন - ব্যবহারকারী খুশি হবেন না ...
অন্য কথায়, ব্যবহার android:configChanges="keyboardHidden|orientation"
করা আপনার "উদ্বেগের" সমাধান নয়। সঠিক উপায় হ'ল আপনার ক্রিয়াকলাপগুলি কোড করা যাতে তারা যে কোনও পুনরায় আরম্ভের অ্যান্ড্রয়েডের দিকে তাদের ছুড়ে খুশি হয়। এটি একটি ভাল অনুশীলন যা আপনাকে রাস্তায় নামাতে সহায়তা করবে, তাই এতে অভ্যস্ত হয়ে উঠুন।
সুতরাং আমি কখন এটি ব্যবহার করব?
যেমনটি আপনি উল্লেখ করেছেন একটি স্বতন্ত্র সুবিধা রয়েছে। রোটেশনের জন্য ডিফল্ট কনফিগারেশন পরিবর্তনটি নিজেই পরিচালনা করে ওভার রাইটিং করা বিষয়গুলিকে গতি বাড়িয়ে তুলবে। যাইহোক, এই গতি সুবিধার দাম নিয়ে আসে।
এটিকে সহজভাবে বলতে গেলে, যদি আপনি পোর্ট্রেট এবং ল্যান্ডস্কেপ উভয়ের জন্য একই লেআউট ব্যবহার করেন তবে ওভাররাইট করেই আপনি ভাল আকারে আছেন। ক্রিয়াকলাপটির পুরোপুরি বর্ধিত পুনরায় লোডের পরিবর্তে দৃশ্যগুলি কেবল অবশিষ্ট স্থানটি পূরণ করার জন্য প্রায় স্থানান্তর করবে।
যাইহোক , ডিভাইস ল্যান্ডস্কেপে থাকা অবস্থায় যদি কোনও কারণে আপনি অন্যরকম লেআউট ব্যবহার করেন তবে অ্যান্ড্রয়েড আপনার ক্রিয়াকলাপটি পুনরায় লোড করে দেয় এটি সঠিক কারণ কারণ এটি পরে সঠিক লেআউটটি লোড করবে। [যদি আপনি এই জাতীয় ক্রিয়াকলাপে ওভাররাইড ব্যবহার করেন, এবং রানটাইমের সময় কিছু জাদুকরী পুনঃ-লেআউট করতে চান ... ভাল, ভাগ্য - এটি সহজ থেকে অনেক দূরে]
দ্রুত সংক্ষিপ্তসার
যাইহোক, যদি আপনার android:configChanges="keyboardHidden|orientation"
পক্ষে সঠিক হয় তবে এটি ব্যবহার করুন। তবে অনুগ্রহ করে কিছু পরিবর্তন হলে কী ঘটে তা পরীক্ষা করে দেখুন, কারণ একটি অরিয়েন্টেশন পরিবর্তনই কেবলমাত্র সম্পূর্ণ ক্রিয়াকলাপ পুনরায় আরম্ভ করার উপায় নয়।