уведомление запускает несколько экземпляров деятельности - PullRequest
3 голосов
/ 09 февраля 2012

Я разрабатываю приложение медиаплеера для воспроизведения аудиофайлов на SD-карте. С помощью приложения я могу просматривать аудиофайлы, воспроизводить выбранную песню. при нажатии кнопки «Назад» во время воспроизведения песни создается уведомление. Проблема возникает здесь, когда я запускаю MainActivity (с помощью PendingIntent), приложение запускает новый экземпляр MainActivity вместо запуска предыдущего экземпляра MainActivity.

Я сделал из режима запуска MainActivity значение «Singletop» в манифесте. К сведению, у приложения есть только одно действие.

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

что пошло не так, я не могу получить. Пожалуйста, помогите мне.

Ответы [ 2 ]

2 голосов
/ 09 марта 2012
Intent intent=new Intent(this,Element.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0);

Это сработало для меня:)

0 голосов
/ 27 мая 2014

Старый вопрос, но для интеграции решения kishu27 (спасибо!), Которое работает, но имеет единственный недостаток - сброс пользовательской навигации в приложении до цели, предназначенной для очистки стека (что может или не может быть тем, что вы хотите)другое решение - создать специализированное действие, единственной задачей которого является назначение пункта назначения:

public class NotificationLanding extends Activity {

    @Override
    public void onCreate(Bundle mainBundle) {
        super.onCreate(mainBundle);

        View view = new View(this);
        view.setBackgroundColor(Color.TRANSPARENT);
        setContentView(view);

        finish();
    }
}

(также не забудьте объявить это действие в манифесте!)

<activity android:name=".NotificationLanding"/>

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

Я бы посоветовал также включить флаги намерений kishu27 в ваше намерение (я это сделал), хотя это не является строго необходимым.

надеюсь, это поможет

...