বাংলায় অ্যান্ড্রয়েড সহায়িকা - Bangla Android Guide

কনফ্লিক্ট সম্পর্কে অবগত হতে

OnStateLoadedListener পদ্ধতি গুগলের সার্ভার থেকে একটি অ্যাপলিকেশনের স্টেট ডাটা লোড করার জন্য দায়িত্বপ্রাপ্ত। কলব্যাক OnStateLoadedListener.onStateConflict ইউজারের ডিভাইসে লোকাল স্টেট এবং ক্লাউডের মধ্যে স্টোর করা স্টেটের মধ্যেকার সাংঘর্ষিক বিষয়গুলো সমাধান করতে আপনার অ্যাপলিকেশনের জন্য একটি মেকানিজম সরবরাহ করে:

@Override
public void onStateConflict(int stateKey, String resolvedVersion,
    byte[] localData, byte[] serverData) {
    // resolve conflict, then call mAppStateClient.resolveConflict()
 ...
}

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

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

অতএব, ক্লাউড সেভ ডাটা ডিজাইন করুন এবং কনফ্লিক্ট রেজ্যুরেশন কোড অবশ্যই হবে (context-independent): প্রদত্ত দুইটা কনফ্লিক্টিং সেভ স্টেট, ডাটা সেটের মধ্যে আছে শুধুমাত্র এমন ডাটা ব্যবহার করে আপনাকে অবশ্যই সংঘর্ষ সমাধান করতে পারতে হবে, বহিরাগত কোন কনটেক্সেটের সাথে পরামর্শ না করেই।