2012-03-26 4 views
0

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

 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.

ответ

0

Set android:launchMode="singleTop" вашей деятельности в манифесте и установить флаги как:

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

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


Update

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

<!-- Higher numbers have a higher priority --> 
<intent-filter android:priority="100"> 
+0

Спасибо Waqas, уже я установил режим своего класса как singleTop. Но не использовать .. –

+0

, если есть еще одна деятельность, которая должна появиться (в вашем случае call-activity), то ее неясно знать, что появляется сначала как вопрос о том, кто первым получает трансляцию - в зависимости от их приоритета. См. Мой обновленный ответ: http://developer.android.com/guide/topics/manifest/intent-filter-element.html#priority – waqaslam

+0

, кроме ваших строк кода, я изменил режим запуска класса на «singleInstance». –

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