Android ရဲ့ datastore ၏ နောက်ကွယ် (၄)

Android မှာ data တွေကို သိမ်းချင်တယ် ဆိုရင် share preference နဲ့ဘဲဖြစ်ဖြစ် xml static file လေးတွေနဲ့ဘဲဖြစ်ဖြစ် SQLite databaseတွေ နဲ့ဖြစ်ဖြစ် သိမ်းနိုင်တယ် ဆိုတာကို ရှေ့က ကျုတိုရီရယ်မှာ ပြောခဲ့ပြီး ဖြစ်ပါတယ်။ အဲ့ဒီလိုမျိုး သိမ်းတာဟာ application တစ်ခုတည်းမှာဘဲ သုံးလို့ရမှာပါ။ ကိုယ့် data ကို application တိုင်းက သုံးလို့ ရစေချင်တယ် ဆိုရင်တော့ content provider ဆောက်ရမှာပါ။

Android ထဲမှာတော့ built-in ပါလာပြီးသား standard content provider တွေလည်း ရှိပါသေးတယ်။ ဥပမာ ပြောရမယ်ဆိုရင် Contacts ဆိုတဲ့ build-in content provider ကိုသုံးပြီး ဖုန်းထဲက contact information တွေကို access လုပ်နိုင်မယ်, MediaStore ဆိုတဲ့ content provider ကိုသုံးပြီး device ထဲမှာရှိနေတဲ့ ပုံတွေ၊ဗီဒီယို ဖိုင်တွေကို access လုပ်နိုင်မယ်။ CallLog ဆိုတဲ့ Content Provider ကိုသုံးပြီး Missed call ခေါ်ထားတဲ့ calls တွေ၊ call details တွေကို ကိုယ့် application program ကနေခေါ်နိုင်မှာပါ။

Android ထဲမှာရှိတဲ့ content://scheme လေးနဲ့ဖော်ပြတဲ့ URI(Uniform Resource Indicator) တိုင်းသည် content provider လေးကနေ ဆောင်ရွက် ပေးနေတာလို့ မှတ်ရမှာပါ။ အဲ့ဒီ cotentprovider လေးကနေပေးမယ့် data သည် ဘယ်မှာရှိနေတာလဲ၊ လိုအပ်တဲ့အခါ ဘယ်နေရာက ရမှာလဲ သိစရာမလိုအောင် ကို encapsulation ပုံစံနဲ့ ပေးတာပါ။ အဲ့ဒီ data တွေကို ဘယ်မှာ သိမ်းထားသလဲ ဆိုရင်တော့ SQLite database ထဲမှာ ဖြစ်ချင်ဖြစ်မယ်၊ falt file ထဲက data ဖြစ်ချင်ဖြစ်မယ်၊ ဒါမှမဟုတ် Internet ကနေ access လုပ်နိုင်တဲ့ server တစ်ခုက ဖြစ်ချင်ဖြစ်မယ်ပေါ့။

URI ပေးလိုက်တာနဲ့ ကိုယ်က CRUD ဖြစ်တဲ့ (create,read,update,delete) စတဲ့ operation တွေကို content provider ကိုသုံးပြီး လုပ်နိုင်ပါပြီ။ Android မှာတော့ ရှိပြီးသာ content provider တွေသုံးဖို့ ခွင့်ပြုသလို content provider framework ကိုသုံးပြီး ကိုယ့် data ကို ကိုယ့်ဘာသာ serve up လုပ်ဖို့ခွင့်ပြုပါတယ်။

URI ကိုအနည်းငယ်ကြည့်ရအောင်

Content UrI ရဲ့ scheme က ဒီလိုပုံစံပါ။ content://namespaces သို့မဟုတ် instance တွေရဲ ့ identifier ကိုဖော်ပြလေ့ ရှိပါတယ်။ scheme နဲ့ namespace အပြည့်အစုံရေးထားရင်တော့ base Uri လိုခေါ်ပါတယ်။

ဥပမာပေးရမယ်ဆိုရင်

Content://constants ဆိုရင် “constants” နဲ့ပတ်သက်တဲ့ information တွေကို servers up လုပ်ပေးမယ့် base Uri  လို့ကိုယ်စားပြုပါတယ်။

content://constants /5 ဆိုတာ contants instance ထဲကမှ identifier 5  ကိုညွှန်းချင်တာပါ။

အောက်မှာပြထားတဲ့အတိုင်း Uri.parser() ကိုသုံးပြီး Uri instance တစ်ခုအဖြစ်သို့ပြောင်းနိုင်ပါတယ်။

If you interested in it, please read more in PDF file ContentProviderTutorials

အခု ကျုတိုရီရယ်လေးရဲ ့ SourceCode ကို download လုပ်ချင်တယ်ဆိုရင်တော့ download.zip

P.s ပျော်ရွှင်ပါစေ…

Ref: Creating and Using Content Provider by Mark L. Murphy From Beginning Android 2 E-book

Facebook comments:

One Response

  1. thwinhtoosan says:

    Android game တွေရော Software တွေရော ကို Computer မှာ ကစားလို ့ရတဲ့ Software လေးများရှိလားဟင်..ရှိရင်တစ်ခါတည်းဒေါင်းလို ့လင့်ပါပေးပေးပါနော်…

Leave a comment


*