ধ্রুব গায়রোলা উত্তর হিসাবে, আপনি বান্ডিল সেভড ইনস্ট্যান্সস্টেট ব্যবহার করে অ্যাপ্লিকেশনের অবস্থা সংরক্ষণ করতে পারেন। আমি খুব সহজ উদাহরণ দেওয়ার চেষ্টা করছি যা আমার মতো নতুন শিখররা সহজেই বুঝতে পারে।
ধরুন, আপনার কাছে টেক্সটভিউ এবং একটি বোতামের সাথে একটি সাধারণ টুকরা রয়েছে। প্রতিবার আপনি বোতামটি ক্লিক করলে পাঠ্য পরিবর্তন হয়। এখন, আপনার ডিভাইস / এমুলেটরটির ওরিয়েন্টেশন পরিবর্তন করুন এবং লক্ষ্য করুন যে আপনি ডেটাটি হারিয়েছেন (মানে আপনি ক্লিক করার পরে পরিবর্তিত ডেটা পেয়েছেন) এবং খণ্ডটি আবার প্রথমবারের মতো শুরু হয়। বান্ডেল সেভড ইনস্ট্যান্সস্টেট ব্যবহার করে আমরা এ থেকে মুক্তি পেতে পারি। আপনি যদি খণ্ডের লাইফ কাইলটি একবার দেখুন। টুকরাটি নষ্ট হয়ে যাওয়ার সময় আপনি পাবেন যে একটি পদ্ধতি "onSaveInstanceState" বলা হয়।
সুতরাং, আমরা রাষ্ট্রটি সংরক্ষণ করতে পারি এর পরিবর্তে পরিবর্তিত পাঠ্য মানটি এর মতো বান্ডলে
int counter = 0;
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("value",counter);
}
ওরিয়েন্টেশন করার পরে "অনক্রিয়েট" পদ্ধতিটি কি সঠিক বলা হবে? সুতরাং আমরা কেবল এটি করতে পারি
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(savedInstanceState == null){
//it is the first time the fragment is being called
counter = 0;
}else{
//not the first time so we will check SavedInstanceState bundle
counter = savedInstanceState.getInt("value",0); //here zero is the default value
}
}
এখন, ওরিয়েন্টেশনের পরে আপনি আপনার মান হারাবেন না। পরিবর্তিত মান সর্বদা প্রদর্শিত হবে।