Forwarded from sasan safari
🎯 انوتیشن pragma('vm\:entry-point')@ در فلاتر چه کاربردی داره؟
اگه با فلاتر کار میکنی و دنبال اجرای آلارم، بکگراند تسک یا نوتیف زمانبندیشده هستی، حتماً به این خط برخوردی:
اما دقیقاً این چی کار میکنه؟ چرا لازمه؟ ⬇️
به Dart VM میگه:
> «این تابع رو نگهدار! حتی اگه فک میکنی هیچجا استفاده نشده.»
---
📦 کجا لازمه؟
وقتی تابع قراره:
✅ توسط
✅ توی isolate جدا اجرا شه
✅ یا بعد از ریاستارت گوشی بالا بیاد
✅ حتی توی
---
🚫 بدون این خط، Dart ممکنه اون تابع رو تو مرحله build حذف کنه (به خاطر tree-shaking)
و نتیجهش؟
⛔️ آلارم اجرا نمیشه
⛔️ هیچ نوتیفی نمیاد
⛔️ هیچ اروری هم نمیبینی!
---
✍️ مثال واقعی:
---
📌 پس اگر داری با:
* AlarmManager
* isolate
* background task
* native callbacks
کار میکنی، یادت نره این خط رو اضافه کنی ✅
---
🧠 نکتهی طلایی آخر:
> این annotation فقط برای توابعیه که **از مسیر اصلی اپ صدا زده نمیشن**، اما توی پسزمینه قراره اجرا شن.
---
برای رفقات بفرست 💙
#Flutter #AndroidAlarmManager #BackgroundExecution #Dart
@sasansafari_dev1400
اگه با فلاتر کار میکنی و دنبال اجرای آلارم، بکگراند تسک یا نوتیف زمانبندیشده هستی، حتماً به این خط برخوردی:
@pragma('vm:entry-point')
اما دقیقاً این چی کار میکنه؟ چرا لازمه؟ ⬇️
به Dart VM میگه:
> «این تابع رو نگهدار! حتی اگه فک میکنی هیچجا استفاده نشده.»
---
📦 کجا لازمه؟
وقتی تابع قراره:
✅ توسط
AndroidAlarmManager
اجرا بشه✅ توی isolate جدا اجرا شه
✅ یا بعد از ریاستارت گوشی بالا بیاد
✅ حتی توی
native callback
یا background fetch
---
🚫 بدون این خط، Dart ممکنه اون تابع رو تو مرحله build حذف کنه (به خاطر tree-shaking)
و نتیجهش؟
⛔️ آلارم اجرا نمیشه
⛔️ هیچ نوتیفی نمیاد
⛔️ هیچ اروری هم نمیبینی!
---
✍️ مثال واقعی:
@pragma('vm:entry-point')
Future<void> startFastingCallback() async {
// اجرای آلارم برای شروع فست
}
---
📌 پس اگر داری با:
* AlarmManager
* isolate
* background task
* native callbacks
کار میکنی، یادت نره این خط رو اضافه کنی ✅
---
🧠 نکتهی طلایی آخر:
> این annotation فقط برای توابعیه که **از مسیر اصلی اپ صدا زده نمیشن**، اما توی پسزمینه قراره اجرا شن.
---
برای رفقات بفرست 💙
#Flutter #AndroidAlarmManager #BackgroundExecution #Dart
@sasansafari_dev1400
👍6