Broadcast Receiver (2)
BroadcastReceiver အသံုးျပဳ ျခင္း (2)
===========================
ကိုယ့္ app မွာ BroadcastReceiver အသံုးျပဳဖို႔ လိုအပ္တဲ့ အေျခခံ အဆင့္ေတြက
ေအာက္မွာ ျပထားတဲ့ အတိုင္း ျဖစ္ပါတယ္။
၁။ AIDE project အသစ္ တခု စလိုက္ပါ။
၂။ Class အသစ္ တခု ေဆာက္ပါ။ အမည္ကို MyReceiver လို႔ အမည္ေပးပါ။ ဒီ
class ဟာ BroadcastReceiver ကို extends လုပ္ထားရပါမယ္။ onReceive
method ကို implement လုပ္ေပးရပါတယ္။ သတင္းလႊင့္ခ်က္ တခု
ျဖစ္ေပၚလာတိုင္း ဒီ event method ဆီကို ေရာက္လာမွာ ျဖစ္ပါတယ္။ ဒီ method
ထဲမွာ ကိုယ္လုပ္ေဆာင္ရမဲ့ အလုပ္ေတြကို လုပ္ရပါတယ္။ အခု ဥပမာ မွာေတာ့
Toast message တခုကိုပဲ ျပပါမယ္။
============
MyReceiver.java
=============
package com.mycompany.myapp;
import android.content.*;
import android.widget.*;
public class MyReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
Toast.makeText(context,"Connectivity
changed.",Toast.LENGTH_SHORT).show();
}
}
=============
၃။ တည္ေဆာက္ခဲ့တဲ့ BroadcastReceiver ကို အသက္သြင္းဖို႔၊ system က
အသိအမွတ္ ျပဳဖို႔ register လုပ္ရပါတယ္။ Register လုပ္ဖို႔ နည္း ၂နည္းရွိပါတယ္။
AndroidManifest.xml မွာ register လုပ္နည္း နဲ႔ code ေရးၿပီး register လုပ္နည္း
ေတြ ျဖစ္ပါတယ္။ အခု ဥပမာမွာ AndroidManifest.xml မွာ လုပ္ထားပါတယ္။
Register လုပ္ရာမွာ Intent filter သတ္မွတ္ေပးရပါတယ္။ ကိုယ္ဖမ္းယူ
နားဆင္လိုတဲ့ radio frequency ကို ခ်ိန္ညွိလိုက္တဲ့ သေဘာ ျဖစ္ပါတယ္။ အခု
ဥပမာမွာ internet connection အေျပာင္းအလဲ ျဖစ္တာ (ပြင့္တာ၊ ပိတ္တာ) ကို
ေစာင့္ နားေထာင္မွာ ျဖစ္လို႔ intent filter က
"android.net.conn.CONNECTIVITY_CHANGE"
ျဖစ္ပါတယ္။ ေအာက္မွာ ျပထားသလို <receiver> block ကို </application> tag
ရဲ့ အေပၚနားေလးမွာ ကပ္ထည့္ပါ။
=============
AndroidManifest.xml
=================
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mycompany.myapp" >
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver
android:name="MyReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
</application>
</manifest>
==============
၄။ MainActivity မွာ ဘာမွ ျပင္ဆင္မႈ မလုပ္ပါဘူး။ App ကို run လိုက္ပါ။
MainActivity တက္လာၿပီ ဆို BroadcastReceiver အလုပ္လုပ္ေနပါၿပီ။
၅။ Internet switch ကို ဖြင့္ၾကည့္ပါ။ ပိတ္ၾကည့္ပါ။ "Connectivity changed"
ဆိုတဲ့ Toast ေလး ေပၚေပၚလာပါမယ္။ ဒါဟာ App ကို uninstall မလုပ္ပဲ ထားသမွ်
ကာလပတ္လံုး အသက္၀င္ေနမွာပါ။
===========
ဆက္လက္ ေဆြးေႏြးေပးပါမယ္။
#nnl
AIDE Android Lessons And Project Group
ဆရာ Nyi Nyi Lwin Post မွ ကူးယူတင္ထားပါသည္
#Credit ဆရာ Nyi Nyi Lwin
Comments
Post a Comment
Thank,s for ...