Как программно переключаться между приложениями Android - PullRequest
1 голос
/ 02 ноября 2019

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

Вот что я попробовал:

  • Использование кнопки «Недавние приложения»
    Это работало нормально, но немного неловко, особенно если стек большой.

  • Использование разделенных экранов
    Это также хорошо работало, но маленькие экраны были проблематичными

  • Пробовали сторонние переключатели приложений, но невот так.

  • Пробовал startActivity по имени пакета (при нажатии кнопки)
    Это было бы моим предпочтительным решением, но были проблемы. Переключение Ok, но каждый раз, когда новая задача создавалась, запускалась и помещалась в стек (без сохранения соединения). Код ниже:

    void switchToClient()       // from Server (on Button click)
    {
        // Alternative Flags Tried: none, FLAG_ACTIVITY_SINGLE_TOP, FLAG_ACTIVITY_NEW_TASK, other
        Intent intent;
        intent = this.getPackageManager().getLaunchIntentForPackage( "com.example.Client" );
        intent.setFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
        startActivity( intent );
    }  
    
...