سؤال

عندما أقوم بالنقر فوق الإخطار على شريط الحالة ، فإنه يطلق نشاطًا ولكن السلوك غريب. إذا كان تطبيقي في المقدمة ونقر فوق الإخطار ، يتم إطلاق نية الإخطار مرة واحدة. إذا كان تطبيقي في الخلفية ، فسيتم إطلاق نية الإخطار مرتين. إذا خرجت من التطبيق (أي أن جميع الأنشطة قد ظهرت عن طريق ضرب زر العودة) ، ثم يتم إطلاق نية الإخطار مرة واحدة. يمكن لأي شخص أن يشرح هذا السلوك. مقتطف الكود كما يلي:

_notification = new Notification(icon_id, "Ticker Text", System.currentTimeMillis());
_showActivityIntent = new Intent();
_showActivityIntent.setAction(MyActivityName);
_showActivityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK + Intent.FLAG_ACTIVITY_NO_HISTORY);
_showActivityPendingIntent = PendingIntent.getActivity(context, 0, _showActivityIntent, 0);
_notification.setLatestEventInfo(context, "My title", "My text", _showActivityPendingIntent);
_notificationMgr.notify(notificationId, _notification);
هل كانت مفيدة؟

المحلول

_showActivityIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

جرب هذا. سوف يمنع مثيلات متعددة من نفس النشاط. يمكنك وضع هذا في البيان أيضًا

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top