2016-07-11 2 views
0

Я запуск системных приложений из моего приложения, и я могу успешно запустить его с помощью этого кодаДоведите приложение на передний план, если он уже запущен, а не создавать новый экземпляр этого

Intent i=getPackageManager.getLaunchIntentForPackage("Your package name"); 
i.setFlags(Intent.FLAGS_REORDER_TO_FRONT); 
i.setFlags(Intent.FLAGS_SINGLE_TOP); 
startActivity(i); 

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

ответ

0

Это зависит от режима запуска активности, которую вы хотите запустить.

Если режим запуска является «стандартной» это не представляется возможным, чтобы привести его на фронт:

новый экземпляр всегда создан для нового намерения, когда режим запуска является «стандартной» (source)

Для всех других режимов запуска, попробуйте использовать следующие два флага:

i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

Как описано в documentation этом следует иметь следующий эффект (который должен соответствовать вашему желаемое поведение):

FLAG_ACTIVITY_CLEAR_TOP наиболее часто используется в сочетании с FLAG_ACTIVITY_NEW_TASK. При совместном использовании эти флаги - это способ поиска существующей деятельности в другой задаче и помещения ее в такое положение, при котором она может реагировать на намерение.

+0

OK Я попробую это :) – Rachan

+0

Нет, это не сработало, он все еще создает новый экземпляр над вышеприведенным моим приложением :( – Rachan

Смежные вопросы