যেমন আপনি প্রতিক্রিয়াশীল বাস্তুতন্ত্রের মধ্যে জানতে পারেন আমাদের একটি আছে যে পর্যবেক্ষণযোগ্য রয়েছে যা ডেটা বের করে এবং একটি পর্যবেক্ষক যা এই পর্যবেক্ষণযোগ্য নিঃসরণের সাবস্ক্রাইব করে (বিজ্ঞপ্তি পান), তথাকথিত পর্যবেক্ষক প্যাটার্ন কীভাবে কাজ করে তা আশ্চর্যের কিছু নয়। একটি পর্যবেক্ষণযোগ্য "চিত্কার" কিছু, পর্যবেক্ষককে অবহিত করা হবে যে প্রদত্ত মুহুর্তে কিছু পর্যবেক্ষণযোগ্য চিৎকার করতে পারে।
LiveData
এমন একটি পর্যবেক্ষণযোগ্য হিসাবে ভাবুন যা আপনাকে এমন active
অবস্থায় থাকা পর্যবেক্ষকদের পরিচালনা করতে দেয় । অন্য কথায় LiveData
একটি সাধারণ পর্যবেক্ষণযোগ্য তবে জীবনচক্রের যত্নও নেয়।
তবে আসুন আপনি যে দুটি কোডের জন্য অনুরোধ করেছেন সেটি দেখুন:
ক) লাইভ ডেটা
খ) আরএক্সজাভা
ক) এটি লাইভডাটার একটি প্রাথমিক প্রয়োগ
1) আপনি সাধারণত ওরিয়েন্টেশন পরিবর্তন বজায় রাখার জন্য ভিউমোডলে লাইভ ডেটা ইনস্ট্যান্ট করেন (কেবলমাত্র পঠিত লাইভ ডেটা বা লিখিতযোগ্য মিউটেবল লাইভ ডেটা থাকতে পারে, তাই আপনি সাধারণত লাইভডাটা ক্লাসের বাইরে প্রকাশ করেন)
2) প্রধান ক্রিয়াকলাপের OnCreate
পদ্ধতিতে (ভিউমোডেল নয়) আপনি একটি পর্যবেক্ষক বস্তুটি "সাবস্ক্রাইব" করেন (সাধারণত একটি অন-চেঞ্জড পদ্ধতি)
3) আপনি লঞ্চটি লিংকটি স্থাপনের জন্য পর্যবেক্ষণ করুন
প্রথমে ViewModel
(ব্যবসায়িক যুক্তির মালিক)
class ViewModel : ViewModel() { //Point 1
var liveData: MutableLiveData<Int> = MutableLiveData()
}
এবং এটি MainActivity
(যতটা সম্ভব বোবা)
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val ViewModelProvider= ViewModelProviders.of(this).get(ViewModel::class.java)
ViewModelProvider.observe(this, Observer {//Points 2 and 3
//what you want to observe
})
}
}
}
খ) এটি আরএক্সজাবার প্রাথমিক প্রয়োগ
1) আপনি একটি পর্যবেক্ষণযোগ্য ঘোষণা
2) আপনি একটি পর্যবেক্ষক ঘোষণা
3) আপনি পর্যবেক্ষকের সাথে পর্যবেক্ষণযোগ্য সাবস্ক্রাইব
Observable.just(1, 2, 3, 4, 5, 6) // Point 1
.subscribe(new Subscriber() { //Points 2 & 3
@Override
public void onCompleted() {
System.out.println("Complete!");
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Double value) {
System.out.println("onNext: " + value);
}
});
বিশেষত স্থাপত্য উপাদানগুলির LiveData
সাথে Lifecycle
এবং প্রায়শই ViewModel
(যেমন আমরা দেখেছি) ব্যবহার করা হয়। আসলে যখন LiveData
ভিউমোডেলের সাথে একত্রিত করা হয় তখন পর্যবেক্ষকের প্রতিটি পরিবর্তন আপনাকে রিয়েল টাইমে আপডেট রাখতে দেয় , যাতে ইভেন্টগুলি যেখানে প্রয়োজন হয় সেখানে রিয়েল টাইমে পরিচালিত হয়। লাইফসাইকেল এবং সম্পর্কিত বিষয়গুলি লাইফসাইকেলওউনার / লাইফ সাইকেলLiveData
সম্পর্কে ধারণাটি ব্যবহার করার জন্য দৃ .়ভাবে সুপারিশ করা হয় , আপনি যদি বাস্তব জীবনের পরিস্থিতিতে বাস্তবায়ন করতে চান তবে আপনাকে ট্রান্সফরমেশনগুলি একবার দেখার পরামর্শ দিচ্ছি । এখানে আপনি দুর্দান্ত কমন্সওয়্যার থেকে কিছু ব্যবহারের ক্ষেত্রে সন্ধান করতে পারেন ।LiveData
মূলত মোড়ানোরLiveData
জন্য সরলিকৃতRXJava
, উপাদানগুলির মধ্যে সুস্পষ্ট তথাকথিত নির্ভরতা বিধি তৈরি না করে একাধিক উপাদান জুড়ে পরিবর্তনগুলি পর্যবেক্ষণ করার একটি দুর্দান্ত উপায়, যাতে আপনি কোডটি আরও সহজ করে পরীক্ষা করতে পারেন এবং এটিকে আরও পাঠযোগ্য। আরএক্সজাভা, আপনাকে লাইভডাটা এবং আরও অনেক কিছু করার অনুমতি দেয়। আরএক্সজাবার বর্ধিত কার্যকারিতার কারণে আপনি উভয়ই সহজ কেসের জন্য লাইভডেটা ব্যবহার করতে পারেন বা আরএক্সজাভা এর সমস্ত শক্তি কাজে লাগিয়ে অ্যান্ড্রয়েড আর্কিটেকচার উপাদানগুলিকে ভিউমোডেল হিসাবে ব্যবহারRXJava
করতে পারেন, অবশ্যই এর অর্থ এটিআরও জটিল হতে পারে, কেবল ভাবেন এর পরিবর্তে কয়েকশত অপারেটর রয়েছে সুইচম্যাপ এবং লাইভডেটার মানচিত্র (এই মুহুর্তে)।
আরএক্সজাভা সংস্করণ 2 হ'ল একটি লাইব্রেরি যা অবজেক্ট ওরিয়েন্টেড দৃষ্টান্তকে বিপ্লব করেছে, প্রোগ্রামটির প্রবাহ পরিচালনা করার জন্য তথাকথিত কার্যকরী উপায় যুক্ত করে।