Вынесите активность на фронт в Android Broadcast Reciever - PullRequest
0 голосов
/ 26 марта 2012

Я пытаюсь запустить действие, когда мне поступил входящий звонок для моего мобильного Android. Для этого в состоянии звонка я запустил действие и установил некоторые флаги для вывода этого действия на передний план. Вот код:

       Intent intent2open = new Intent(ctx,  Main.class);
    intent2open.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK |       Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP); 
    intent2open.setAction("android.intent.action.VIEW");
    intent2open.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    intent2open.setAction(Intent.ACTION_MAIN); 
    intent2open.addCategory(Intent.CATEGORY_LAUNCHER); 
        intent2open.putExtra(name, value);
    startActivity(intent2open);

Используя приведенный выше код, я не получил требуемый вывод, в некоторых случаях приложение будет запущено, когда я приму или отклоню свой вызов. В некоторых других случаях он будет запущен, когда государство звонит. Я не могу решить эту проблему. Как я могу вывести свою деятельность на передний план?

Спасибо заранее, Lokesh.

1 Ответ

0 голосов
/ 26 марта 2012

Установите android:launchMode="singleTop" на свою активность в манифесте и установите свои флаги как:

intent2open.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT
    |Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
    |Intent.FLAG_ACTIVITY_NEW_TASK);

* по крайней мере, это хорошо работает для меня в моем проекте


Обновление

Увеличение приоритета в манифесте для фильтра намерений вашей трансляции также может помочь вам в этом случае:

<!-- Higher numbers have a higher priority -->
<intent-filter android:priority="100">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...