Android - Как создать Несколько экземпляров Действия?

Я задавался вопросом, действительно ли возможно создать несколько экземпляров единственного Действия в 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);

Это позволяет мне запускать прекрасное Действие.

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

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

Действительно ли это возможно и раз так что я делаю неправильно?

8
задан Donal Rafferty 1 July 2010 в 13:08
поделиться

1 ответ

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

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

Также:

  • Избавьтесь от myIntent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK); , поскольку вам не нужна новая задача на основе того, что вы здесь написали
  • С context , вероятно, Context , я не знаю, почему вы проходите через все ContextWrapper / getBaseContext () материал
7
ответ дан 5 December 2019 в 15:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: