সর্বদা অ্যান্ড্রয়েড কেন ব্যবহার করবেন না: কনফিগারেশন = "কীবোর্ডহাইডান | অভিমুখীকরণ"?


177

আমি ভাবছিলাম কেন android:configChanges="keyboardHidden|orientation"প্রতিটি (প্রায় প্রতি;)) ক্রিয়াকলাপে ব্যবহার করবেন না?

সামগ্রী:

  • আপনার ক্রিয়াকলাপটি ঘোরানো হয়েছে তা নিয়ে চিন্তা করার দরকার নেই
  • এটা দ্রুত

এত সুন্দর নয়:

  • আপনার লেআউটগুলি যদি পর্দার আকারের উপর নির্ভর করে তবে তাদের পরিবর্তন করতে হবে (উদাহরণস্বরূপ দুটি কলাম বা তার সাথে লেআউট)

খারাপ:

  • বিভিন্ন দিকনির্দেশে বিভিন্ন বিন্যাস রাখার নমনীয় উপায় নেই
  • টুকরা ব্যবহার করার সময় খুব ভাল না

তবে আমরা যদি বিভিন্ন লেআউট ব্যবহার না করি তবে কেন নয়?


6
কী- বোর্ড
হিডেন

এটি নির্দিষ্ট কনফিগারেশন পরিবর্তনের নেটিভ হ্যান্ডলিং ব্যবহার করা এবং অ্যাপ্লিকেশনটিকে হ্যান্ডেল করার অনুমতি দেয় না, তাই না?
মিকুওস

2
এই কারণেই এই বিকল্পটি রয়েছে, আপনি যদি জানেন যে আপনি কী করছেন (সংস্থানসমূহের কোনও পরিবর্তন নেই), এটি ব্যবহার করুন।
পয়েন্টার নুল 21

স্ক্রিন সাইজ ব্যবহারের চেয়ে দ্রুত কেন?
ব্যাটম্যাচি

উত্তর:


333

দ্রুত পটভূমি

ডিফল্টরূপে, যখন অ্যান্ড্রয়েডে নির্দিষ্ট কী কনফিগারেশন পরিবর্তন ঘটে (একটি সাধারণ উদাহরণ একটি ওরিয়েন্টেশন পরিবর্তন), এ জাতীয় পরিবর্তনগুলি সামঞ্জস্য করতে সহায়তা করার জন্য অ্যান্ড্রয়েড চলমান ক্রিয়াকলাপটিকে পুরোপুরি পুনরায় শুরু করে।

আপনি যখন android:configChanges="keyboardHidden|orientation"আপনার অ্যান্ড্রয়েড ম্যানিফেস্টে সংজ্ঞায়িত করেন, আপনি অ্যান্ড্রয়েডকে বলছেন: "কীবোর্ডটি টানা না গেলে, বা ফোনটি ঘোরানো হলে দয়া করে ডিফল্ট পুনরায় সেট করবেন না; আমি নিজে এটি পরিচালনা করতে চাই Yes হ্যাঁ, আমি জানি আমি কী করছি "

এটি কি ভাল ব্যাপার? আমরা শীঘ্রই দেখতে পাবেন ...

কোন চিন্তা করো না?

আপনি যে উপকারগুলি দিয়ে শুরু করেন তার মধ্যে একটি হ'ল:

আপনার ক্রিয়াকলাপটি ঘোরানো হয়েছে তা নিয়ে চিন্তা করার দরকার নেই

অনেক ক্ষেত্রে লোকেরা ভুল করে বিশ্বাস করে যে যখন তাদের কোনও ত্রুটি রয়েছে যা একটি ওরিয়েন্টেশন পরিবর্তন ("রোটেশন") দ্বারা উত্পাদিত হচ্ছে তখন তারা কেবল এটিকে সংশোধন করতে পারে android:configChanges="keyboardHidden|orientation"

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

সম্পাদনা : আরও গুরুত্বপূর্ণ বিষয়, যদিও হ্যাকবড মন্তব্যগুলিতে উল্লেখ করেছে, আপনার অ্যাপ্লিকেশন ব্যাকগ্রাউন্ডে থাকবে এবং অ্যান্ড্রয়েড এটিকে হত্যা করে কিছু স্মৃতি মুক্ত করার সিদ্ধান্ত নিলে আপনার কার্যকলাপটিও আবার শুরু হবে। যখন ব্যবহারকারী আপনার অ্যাপে ফিরে আসবে, অ্যান্ড্রয়েড অন্য কিছু কনফিগারেশন পরিবর্তন ঘটে থাকে একইভাবে কার্যকলাপটি পুনরায় আরম্ভ করার চেষ্টা করবে। যদি আপনি এটি পরিচালনা করতে না পারেন - ব্যবহারকারী খুশি হবেন না ...

অন্য কথায়, ব্যবহার android:configChanges="keyboardHidden|orientation"করা আপনার "উদ্বেগের" সমাধান নয়। সঠিক উপায় হ'ল আপনার ক্রিয়াকলাপগুলি কোড করা যাতে তারা যে কোনও পুনরায় আরম্ভের অ্যান্ড্রয়েডের দিকে তাদের ছুড়ে খুশি হয়। এটি একটি ভাল অনুশীলন যা আপনাকে রাস্তায় নামাতে সহায়তা করবে, তাই এতে অভ্যস্ত হয়ে উঠুন।

সুতরাং আমি কখন এটি ব্যবহার করব?

যেমনটি আপনি উল্লেখ করেছেন একটি স্বতন্ত্র সুবিধা রয়েছে। রোটেশনের জন্য ডিফল্ট কনফিগারেশন পরিবর্তনটি নিজেই পরিচালনা করে ওভার রাইটিং করা বিষয়গুলিকে গতি বাড়িয়ে তুলবে। যাইহোক, এই গতি সুবিধার দাম নিয়ে আসে।

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

যাইহোক , ডিভাইস ল্যান্ডস্কেপে থাকা অবস্থায় যদি কোনও কারণে আপনি অন্যরকম লেআউট ব্যবহার করেন তবে অ্যান্ড্রয়েড আপনার ক্রিয়াকলাপটি পুনরায় লোড করে দেয় এটি সঠিক কারণ কারণ এটি পরে সঠিক লেআউটটি লোড করবে। [যদি আপনি এই জাতীয় ক্রিয়াকলাপে ওভাররাইড ব্যবহার করেন, এবং রানটাইমের সময় কিছু জাদুকরী পুনঃ-লেআউট করতে চান ... ভাল, ভাগ্য - এটি সহজ থেকে অনেক দূরে]

দ্রুত সংক্ষিপ্তসার

যাইহোক, যদি আপনার android:configChanges="keyboardHidden|orientation"পক্ষে সঠিক হয় তবে এটি ব্যবহার করুন। তবে অনুগ্রহ করে কিছু পরিবর্তন হলে কী ঘটে তা পরীক্ষা করে দেখুন, কারণ একটি অরিয়েন্টেশন পরিবর্তনই কেবলমাত্র সম্পূর্ণ ক্রিয়াকলাপ পুনরায় আরম্ভ করার উপায় নয়।


50
এটি যোগ করার মতো যে আপনার ক্রিয়াকলাপটি পুনরায় আরম্ভ করা না হওয়া মানে আপনার কম সমস্যাযুক্ত কনফিগারেশন পরিবর্তনগুলি না পরিচালনা করার চেয়ে বড় সমস্যা রয়েছে। এখানে ব্যবহৃত অ্যাক্টিভিটি পুনঃসূচনা হ'ল ঠিক একই প্রক্রিয়া হ'ল আপনার অ্যাপ্লিকেশনটি যখন ব্যাকগ্রাউন্ডে মারা যায় তখন অ্যান্ড্রয়েড কীভাবে আপনার কার্যকলাপটিকে পূর্বের অবস্থায় ফিরিয়ে দেয়। সুতরাং আপনি যদি এটি সঠিকভাবে না করে থাকেন, আপনার ব্যবহারকারীরা ব্যাকগ্রাউন্ড থেকে যখন এটিকে প্রক্রিয়ায় হত্যা করা হয়েছে কিনা তার উপর নির্ভর করে এলোমেলোভাবে আপনার অ্যাপ্লিকেশনটি সঠিকভাবে ফিরে না আসার অভিজ্ঞতা অর্জন করবে। সুতরাং একটি বিশাল সুবিধা: এটি নিশ্চিত করে যে আপনার অ্যাপ্লিকেশন সঠিকভাবে পুনরায় আরম্ভ হবে।
হ্যাকবড

14
অ্যান্ড্রয়েড 3.x থেকে "স্ক্রিনসাইজ" ---------- অ্যান্ড্রয়েড যুক্ত করতে মিস করবেন না: কনফিগারেশন = ["এমসিসি", "এমএনসি", "লোকেল", "টাচস্ক্রিন", "কীবোর্ড", "কীবোর্ডহিডেন", "নেভিগেশন", "স্ক্রিনলয়েট", "ফন্টস্কেল", "ইউআইমোড", "ওরিয়েন্টেশন", "স্ক্রিন সাইজ", "সবচেয়ে ছোট স্ক্রিনসাইজ"]
মাইকেল

1
আমি লক্ষ্য করেছি যে আপনি যখন কনফিগারেশন বৈশিষ্ট্যটি ব্যবহার করেন তখন আপনার অ্যাপ্লিকেশন ওরিয়েন্টেশন-লক বৈশিষ্ট্যটিকেও উপেক্ষা করে। আপনি কীভাবে এটি সমাধান করতে পারেন? যদি আপনি উত্তরটি জানেন তবে দয়া করে এটি এখানে লিখুন: stackoverflow.com/questions/24000361/…
অ্যান্ড্রয়েড বিকাশকারী

4
Please don't do the default reset when the keyboard is pulled outআমি একটি ভ্রমণ পুনর্সূচনা দেখিনি কীবোর্ড টান আউট !
মুহাম্মদ বাবর

মাঝেমধ্যে পুনঃসূচনাগুলি আমার মতে ঠিক আছে ... কনফিগারেশনগুলি আমার পক্ষে বেশিরভাগ কেস পরিচালনা করে ... সম্ভবত অন্য কোনও প্রকারের অ্যাপ্লিকেশনে এটি সমস্যা হতে পারে তবে এটি সত্যই নির্ভর করে ....
রেনেটিক

2

আমার দৃষ্টিকোণ থেকে: ল্যান্ডস্কেপ এবং প্রতিকৃতি উভয় মোডে যদি বিন্যাস একই হয় - আপনি আপনার অ্যাপ্লিকেশনে দু'জনের একটি অক্ষম করতে পারেন।

আমি এটি বর্ণনা করার কারণটি হ'ল আমি যখন ব্যবহারকারীতা পরিবর্তন করি তখন ব্যবহারকারী হিসাবে অ্যাপটি আমাকে কিছু সুবিধা দেয় some আমি যদি আমার ফোনটি কীভাবে ধরে রাখি তা যদি ব্যাপার না হয় তবে আমার পছন্দের দরকার নেই।

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


4
হ্যাঁ, আমরা আমাদের অ্যাপলের প্রকাশের সাথে মেলে আমাদের অ্যাপ্লিকেশনটির 1.0 সংস্করণে এটি দিয়েছিলাম। এটি কেবল প্রতিকৃতিতে উপস্থাপন করা হয়েছিল। যা আমার ড্রয়েড এক্সে দুর্দান্ত লাগছিল, আমরা আইওএস সংস্করণটির পপআপ কীবোর্ড আচরণের সাথে ঠিক মিলেছি। তারপরে সিএফও তার ড্রয়েডটিতে অ্যাপটি ইনস্টল করে, এটিকে সাইডে ঘুরিয়ে দিয়ে কীবোর্ডটি খোলে। উফ। অ্যান্ড্রয়েড সম্পর্কিত বিষয়টি এটি একটি উন্মুক্ত প্ল্যাটফর্ম এবং আপনি হার্ডওয়্যার কনফিগারেশন বা ব্যবহারকারী এটির মাধ্যমে কী করতে চান তা আপনি সত্যিই অনুমান করতে পারবেন না, তাই আপনার ক্ষেত্রে সম্ভবত উভয় (সমস্ত) অভিমুখকে সমর্থন করা উচিত।
তেভো ডি

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

1
আপনি কেন এটি আইওএসের মতো আচরণ করার চেষ্টা করছেন? :(
FunkTheMonk

7
@ ফঙ্কডমোনক দুর্ভাগ্যক্রমে আমরা এমন এক পৃথিবীতে বাস করি যেখানে ব্যবসায়ীরা প্রযুক্তিগত সিদ্ধান্ত নেন। এমনকি যদি আপনি এর বিরুদ্ধে তর্ক করেন তবে অর্ধেক সময় তারা মনে করে যে তারা যেভাবেই ঠিক আছে। এবং তারা আপনার বেতনটি নিয়ন্ত্রণ করে।
স্ট্যাক ওভারফ্লো 2

2
শুধুমাত্র একটি লেআউট ব্যবহার করার অর্থ এই নয় যে ঘোরার সময় স্ক্রিনটি একই দেখাবে। একটি সুগঠিত এক্সএমএল লেআউটটি যুক্তিযুক্ত মাত্রাগুলি সহ জিনিসগুলিকে স্বয়ংক্রিয়ভাবে চারপাশে স্থানান্তরিত করবে এবং ব্যবহারকারীরা এটির প্রশংসা করবে।
মেলিন্ডা সবুজ

-1

আমি কেন দেখতে পাচ্ছি না .... মাঝে মাঝে পুনঃসূচনাগুলি আমার মতে ঠিক আছে ... কনফিগারেশনগুলি বেশিরভাগ ক্ষেত্রে আমার জন্য পরিচালনা করে ... সম্ভবত কিছু ধরণের অ্যাপ্লিকেশনে এটি সমস্যা হতে পারে তবে এটি অ্যাপের ধরণের এবং আপনি কীভাবে পুনরুদ্ধার করবেন তা নির্ভর করে অ্যাপ্লিকেশন পুনরায় আরম্ভ করার সময় ... আমার অ্যাপ্লিকেশনগুলির মধ্যে যখন একজন পুনরায় চালু হয় তখন আমার কোডটি ব্যবহারকারীর ফিরে আসে এবং শেষ ক্রিয়াকলাপটি আমার কোড দ্বারা খোলে এবং ব্যবহারকারী যেখানে ছিলেন সে ফিরে যাওয়ার জন্য কিছু পদক্ষেপ হারিয়ে ফেলেছিল তবে অন্য কোনও ক্ষেত্রে সর্বদা স্থির থাকে এবং কিছু অবস্থা সর্বদা পুনঃসূচনাতে পুনরুদ্ধার করা হয়। ক্রিয়াকলাপটি পুনরায় শুরু করার সময় এটি হওয়া উচিত ছিল যে অ্যাপ্লিকেশনটি ব্যবহার করা হয়নি বা কিছু ছিল ... তাই কোনও সমস্যা নেই ... উদাহরণস্বরূপ গেমের ক্ষেত্রে এটি সমস্যা হতে পারে বা অন্য কোনও ধরণের অ্যাপ্লিকেশনটিতে আমি জানি না ...

আমি বলি যে আপনি যখন এইভাবে করেন তখন অ্যাপ্লিকেশনগুলি সাধারণ পরিস্থিতিতে ঠিক কাজ করে। এবং কোড সংরক্ষণ এবং পুনরুদ্ধার করার জন্য প্রয়োজনীয় সংখ্যক যুক্তি ছাড়াই প্রয়োজনীয় পাঠযোগ্য, যেখানে আপনি কেবল নতুন বাগ তৈরি করতে পারেন এবং সর্বদা এটি বজায় রাখতে হবে ... অ্যান্ড্রয়েড ক্ষমতা থেকে বেরিয়ে যায় এবং আপনাকে অ্যাপ্লিকেশন উইন্ডো মেরে ফেললে তা প্রসঙ্গ হারাবে এবং আবার শুরু হয়, তবে এটি কেবল বিশেষ পরিস্থিতিতে এবং নতুন ডিভাইসগুলিতে ঘটে যা আমি বিশ্বাস করি এটি আরও বেশি বিরল ...

সুতরাং আমাকে হত্যা করুন, তবে আমি এটি অ্যাপ্লিকেশনগুলিতে বেশ সফলভাবে ব্যবহার করি ... অ্যান্ড্রয়েড: কনফিগারেশন = "লোকেল | কীবোর্ড | কীবোর্ডহিডেন | ওরিয়েন্টেশন | স্ক্রিনলয়েট | uiMode | স্ক্রিনসাইজ | ক্ষুদ্রতম স্ক্রিনসাইজ" তবে আমি বুঝতে পারি যে কিছু বিশেষ ধরণের অ্যাপ্লিকেশনগুলির জন্য এটি নাও হতে পারে ভাল উপায় তবে বেশিরভাগ অ্যাপ্লিকেশন ঠিক এই ঠিকঠাক দিয়েই বেঁচে থাকতে পারে।


হাই এই বিষয় সম্পর্কে জ্ঞানবান কেউ দয়া করে আমার থ্রেডটি দেখুন: স্ট্যাকওভারফ্লো / প্রশ্ন / 35941585/…? মরিয়া হয়ে সহায়তা দরকার।
লুক অ্যালিসন

আপনার ক্রিয়াকলাপগুলিতে পুনরুদ্ধার / পুনরায় শুরু করার পুরোপুরি সমর্থন করা উচিত ... এটি ঘোরানোর জন্য পরিচালনা করা আলাদা নয় ... আপনি বলছেন যে আপনি কয়েকটি ধাপ হারাচ্ছেন ... যদি আপনি এটি সঠিকভাবে করেন তবে আপনি কোনও পদক্ষেপ হারাবেন না এবং আপনি ঠিক যেখানে ব্যবহারকারী ছেড়েছেন সেখানে পুনরুদ্ধার করবেন say ... ডিভাইস পুনরায় চালু হওয়ার পরেও।
HaMMeReD

হামেমেড আমি জানি না আপনি কী সম্পর্কে কথা বলছেন তবে আমি বলি যে আপনি যখন এইভাবে করেন তখন অ্যাপ্লিকেশনগুলি সাধারণ পরিস্থিতিতে ঠিক কাজ করে। এবং কোড সংরক্ষণ এবং পুনরুদ্ধার করার জন্য প্রয়োজনীয় সংখ্যক যুক্তি ছাড়াই প্রয়োজনীয় পাঠযোগ্য, যেখানে আপনি কেবল নতুন বাগ তৈরি করতে পারেন এবং সর্বদা এটি বজায় রাখতে হবে ... অ্যান্ড্রয়েড ক্ষমতা থেকে বেরিয়ে যায় এবং আপনাকে অ্যাপ্লিকেশন উইন্ডো মেরে ফেললে তা প্রসঙ্গ হারাবে এবং আবার শুরু হয়, তবে এটি কেবল বিশেষ পরিস্থিতিতে এবং নতুন ডিভাইসগুলিতে ঘটে যা আমি বিশ্বাস করি এটি আরও বেশি বিরল ...
রেনেটিক

ক্রিয়াকলাপ চুক্তি (সংরক্ষণ / পুনরুদ্ধার অবস্থা) মান্য করা অবহেলা করা খারাপ অভ্যাস এবং এটি সামগ্রিকভাবে ভয়ানক পরামর্শ। প্রক্রিয়াজনিত মৃত্যুর বিরুদ্ধে পরীক্ষার চেষ্টা করুন এবং দেখুন যে আপনার অ্যাপটি আপনাকে কোথায় পেয়েছে এবং আপনার ব্যবহারকারীর ফোনে কমপক্ষে ২-৩ টি অ্যাপ্লিকেশন ব্যবহার করেন এবং তাদের মধ্যে স্যুইচ করেন তবে এই আচরণটি পুরোপুরি প্রমিত "স্বাভাবিক পরিস্থিতি" is
এপিকপান্ডাফোরস

-3

হ্যাঁ আমি মনে করি বিরতি প্লেয়ারকে ছেড়ে দেওয়ার চেয়ে দ্রুত তৈরি করবে। এখনও বিরতি আছে যদিও।

এখন এমন একটি সমাধান খুঁজে পেয়েছেন যা গানটি থামবে না।

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

  1. ওরিয়েন্টেশন হ্যান্ডেল করতে ম্যানিফেস্ট আপডেট করুন।

    android:configChanges="orientation|screenSize"
  2. এই কোড যুক্ত করুন

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        // TODO Auto-generated method stub      
        super.onConfigurationChanged(newConfig);        
        setContentView(R.layout.activity_main);
    }

সংগীত বাজানোর জন্য আপনার কোনও পরিষেবা ব্যবহার করা উচিত। গুরুতরভাবে, আপনি লোকগুলিকে এমন কোড যুক্ত করতে বলছেন যা এর মধ্যে এখনও "// TODO স্বয়ংক্রিয়ভাবে উত্পন্ন পদ্ধতি স্টাব" রয়েছে। ঝাল সমাধান। এটিও দুর্দান্তভাবে কাজ করবে না, আপনাকে আপনার সমস্ত তথ্যসূত্র ফেরত দিতে হবে এবং আপনি যদি তা না করেন তবে এটি সর্বোপরি অনাকাঙ্ক্ষিত হতে চলেছে।
HaMMeReD
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.