Junior
Бигзор BroadcastReceiver дар Android чист?
sobes.tech AI
Ҷавоб аз AI
Ин компоненте, ки ба паёмҳои паҳншудаи системӣ ё корбар ҷавоб медиҳад. Вай интерфейси корбарӣ надорад ва барои иҷрои амалиётҳои пасзамина дар посух ба рӯйдодҳои муайян пешбинӣ шудааст.
Хусусиятҳои асосӣ:
- Ба ниятҳо (Intents) бо амали (action) муайян ҷавоб медиҳад.
- Компоненти кӯтоҳмуддат, усули
onReceive()дар давоми кӯтоҳ иҷро мешавад. - Барои амалиёти дарозмуддат пешбинӣ нашудааст. Агар кор дарозмуддат лозим бошад, бояд Service аз
onReceive()оғоз карда шавад. - Метавонад статикӣ дар манфест ё динамикӣ дар код сабт шавад.
Маслиҳатҳои истифода:
- Ба тағиротҳои ҳолати шабака ҷавоб додан (
android.net.conn.CONNECTIVITY_CHANGE). - Ба оғозёбии системаи (
android.intent.action.BOOT_COMPLETED) ҷавоб додан. - Коркарди SMS-и воридотӣ.
- Гирифтани паёмҳои корбарӣ, ки аз ҷониби дигар компонентҳо ё дигар барномаҳо фиристода шудаанд.
Дар манфест сабт:
<receiver android:name=".MyBroadcastReceiver"
android:exported="true"> // exported="true" барои имкон додан ба дигар барномаҳо интизорӣ фиристодан
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
Дар код сабт:
// Дар Activity ё Service
IntentFilter filter = new IntentFilter("com.example.MY_CUSTOM_ACTION");
MyBroadcastReceiver receiver = new MyBroadcastReceiver();
registerReceiver(receiver, filter);
// Дар onDestroy() ё onStop() - сабтро бояд бекор кард!
unregisterReceiver(receiver);
Класи BroadcastReceiver:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Ин ҷо код иҷро мешавад дар вақти қабул кардани Intent
// Масалан:
if ("com.example.MY_CUSTOM_ACTION".equals(intent.getAction())) {
Toast.makeText(context, "Аксияи махсус қабул шуд!", Toast.LENGTH_SHORT).show();
}
}
}