Android - Как создать несколько экземпляров действия? - PullRequest
7 голосов
/ 01 июля 2010

Мне было интересно, возможно ли создать несколько экземпляров одного действия в Android?

В настоящее время я запускаю собственный экран inCall для теста Voip, используя следующий код:


     public void initInCallScreen(String pName, String phoneNumber, int contactID, boolean 
        callDirection, int lineID){

    //starts in callScreen dialog
    final Intent myIntent = new Intent(context, CallDialogActivity.class);
    myIntent.putExtra("NAME", pName);
    myIntent.putExtra("NUMBER", phoneNumber);
    myIntent.putExtra("ID", contactID);
    myIntent.putExtra("CALLTYPE", callDirection); //True = Incoming, False = Outgoing
    myIntent.putExtra("LINEID", lineID);
    myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(myIntent);

Это позволяет мне нормально начинать задание.

Однако, когда я вызываю его на секунду, он просто возвращается к уже созданному действию, а не создает новое действие и помещает его в стек.

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

Возможно ли это, и если да, то что я делаю не так?

Ответы [ 2 ]

7 голосов
/ 01 июля 2010

Однако, когда я звоню на секунду, просто возвращается в активность уже создано, а не создание нового Активность и размещение в стеке.

Вы, вероятно, изменили свой манифест, добавив атрибут android:launchMode, который мешает вашей цели. По умолчанию при запуске действия запускается новый экземпляр.

Также:

  • Избавьтесь от myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);, поскольку вам не нужно новое задание на основе того, что вы здесь написали
  • Поскольку context, вероятно, Context, я не знаю, почему вы проходите через все ContextWrapper / getBaseContext() вещи
4 голосов
/ 16 мая 2013
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
            | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
            | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
...