Middle
PendingIntent чист?
sobes.tech AI
Ҷавоб аз AI
Ин инҷо як пӯсти атрофи Intent аст, ки ваколатҳоро ба барномаи дигар медиҳад, то ин Intent-ро дар номи мо дар оянда иҷро кунад.
Хусусиятҳои асосӣ:
- Иҷрои дер:
Intentнаҳр ба таври фаврӣ, балки баъдтар, аз ҷониби дигар компонент иҷро мешавад. - Иртиботҳо: Компоненте, ки
PendingIntent-ро мегирад, ҳамон иҷозатҳоро мегирад, ки барномаи мо барои иҷрои инIntent. - Уникалият:
PendingIntent-ҳо дар назар гирифта мешаванд, ки якхела бошанд, агар намуд, амал (action), маълумот (data), категорияҳо (categories) ва флагҳо (flags) мувофиқат кунанд. - Истифода: Баъзан барои огоҳиномаҳо, вазифаҳои пасзамана, widget-ҳо ва AlarmManager истифода мешавад.
Намудҳои PendingIntent ба намудҳои компонентҳои мақсадӣ мувофиқат мекунанд:
getActivity(Context context, int requestCode, Intent intent, int flags): оғоз карданиActivity.getBroadcast(Context context, int requestCode, Intent intent, int flags): фиристодани сигнали пахш.getService(Context context, int requestCode, Intent intent, int flags): оғоз ё пайвастшавӣ баService.getForegroundService(Context context, int requestCode, Intent intent, int flags): оғоз карданиForeground Service.
// Намунаи эҷоди PendingIntent барои Notifications
Intent notificationIntent = new Intent(context, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(
context,
0, // requestCode, барои фарқ кардани PendingIntent истифода мешавад
notificationIntent,
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE // Флагҳо барои идоракунии рафтор
);
// Акнун ин pendingIntent метавонад ба мисол, дар Notification гузошта шавад
Флагҳо (flags) дар рафтор дар вақти эҷод ё навсозии PendingIntent мавҷуданд:
FLAG_ONE_SHOT:PendingIntentметавонад танҳо як бор истифода шавад.FLAG_NO_CREATE: АгарPendingIntentвуҷуд надошта бошад, он эҷод намешавад,nullбаргардонида мешавад.FLAG_CANCEL_CURRENT: АгарPendingIntentбо параметрҳои ҳамон вуҷуд дошта бошад, он бекор карда мешавад ва нав эҷод мешавад.FLAG_UPDATE_CURRENT: АгарPendingIntentбо параметрҳои ҳамон вуҷуд дошта бошад, маълумоти иловагӣ (Extra data) нав карда мешавад.FLAG_IMMUTABLE(аз S/API 31 ҳатмӣ барои бештар ҳолатҳо): Эҷод карданиPendingIntentбеэътибор.FLAG_MUTABLE: Эҷод карданиPendingIntentтағйирёбанда (бо эҳтиёт истифода баред, метавонад осебпазир бошад).
Интихоби флаги дуруст барои кор ва бехатарӣ муҳим аст.