2013-04-09 2 views
0

Я создаю приложение mono android, которое получает уведомления от GCM и открывает действие, когда пользователь нажимает на уведомление.Открыть существующий вид деятельности - mono for android

Проблема возникает, когда экземпляр действия, созданного уведомлением, уже существует и является текущей активной активностью в приложении. При нажатии на уведомление создается дублирующее действие в приложении. Проблема тонкая, поскольку новая дублирующаяся активность открывается на переднем плане и выглядит идентичной предыдущей деятельности, однако, когда пользователь нажимает кнопку «Назад», повторяющаяся активность убивается, но предыдущее действие остается в силе, так что пользователю нужно дважды нажать кнопку «Назад».

Ниже приведен текущий код, используемый для генерации уведомления и создания активности при нажатии. Я надеюсь, что процесс будет чем-то вроде, если активность существует, тогда открытая существующая деятельность еще начнет новую деятельность. Цените любую помощь, спасибо.

void createNotification(string title, string desc) 
{ 
//Create notification 
var notificationManager = GetSystemService(Context.NotificationService) as NotificationManager; 

//Create an intent to show ui 
var uiIntent = new Intent(this, typeof(Messaging)); 

//Create the notification 
var notification = new Notification(Android.Resource.Drawable.SymActionEmail, title); 

notification.Defaults = NotificationDefaults.Sound; 

//Auto cancel will remove the notification once the user touches it 
notification.Flags = NotificationFlags.AutoCancel; 

//Set the notification info 
//we use the pending intent, passing our ui intent over which will get called 
//when the notification is tapped. 
notification.SetLatestEventInfo(this, title, desc, PendingIntent.GetActivity(this, 0, uiIntent, 0)); 

//Show the notification 
notificationManager.Notify(1, notification); 
} 

ответ

0

Попробуйте

Intent intent = new Intent(context, MyActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK); 
startActivity(intent); 
Смежные вопросы