Начать деятельность с приемника вещания - PullRequest
2 голосов
/ 22 февраля 2012

У меня есть следующий сценарий для Android: у меня есть приложение, которое при запуске запускает службу .Этот сервис проверяет URL каждые 30 минут.Если он получает конкретный ответ, он отправляет Broadcast , который приложение получает и обрабатывает.Этот сценарий отлично работает для меня.

Я также хотел бы, чтобы мой сервис продолжал работать после того, как пользователь прекратил запускать приложение (приложение выходит на передний план). С которым я тоже работал.

Проблема, с которой я сталкиваюсь, заключается в том, что когда активность получает широковещательное сообщение, я не могу заставить действие вернуться на передний план .Я пробовал различные комбинации намерений, но не понял этого.Что я делаю не так?

Мой код BroadcastReceiver выглядит следующим образом:

private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        launchApp();
    }
};

private void launchApp() {
    Intent vukaniActivity = new Intent(this, Vukani.class);

    // I've tried multiple different flags to no avail.
    vukaniActivity.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(vukaniActivity);
}

1 Ответ

6 голосов
/ 22 февраля 2012

Флаги, которые вам нужны:

vukaniActivity.setFlags( Intent.FLAG_ACTIVITY_NEW_TASK
                       | Intent.FLAG_ACTIVITY_CLEAR_TOP
                       | Intent.FLAG_ACTIVITY_SINGLE_TOP);

Также убедитесь, что вы работаете в потоке пользовательского интерфейса.

runOnUiThread(new Runnable(){
  @Override
  public void run(){
    launchApp();
  }
});
...