Какой флаг мне нужен для получения существующей активности? - PullRequest
0 голосов
/ 01 ноября 2018

В моем приложении Нормальные обеды в приложении. Я делюсь файлом в Activity2.

Как мне добиться следующего Activity1 (обычное приложение запуска) -> Activity2 (Поделиться файлом) -> Activity1 (нажатием какой-либо кнопки) -> Activity2 (при нажатии на спину) -> Существующее приложение (при нажатии на спину и не показывать Activity1)

Какие флаги мне следует использовать при запуске Activity1 из Activity2? А каким должен быть режим запуска для Activity1 и Activity1 в файле манифеста?

1 Ответ

0 голосов
/ 01 ноября 2018

Допустим, у вас есть два отдельных App_1 и App_2 , Activity_1 принадлежит App_1 Activity_2 другому , Итак, тогда

  • Сделать это Activity_2 прямым доступом к манифесту приложения Activity_2

    <activity
        android:name=".Activity2">
        <intent-filter>
            <action android:name="launch.Activity2.from.Activity1" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    
  • Открыть Activity_2 из Activity_1 от

        Intent intent = new Intent();
        intent.setAction("launch.Activity2.from.Activity1");
        startActivityForResult(intent, YOUR_REQUEST_CODE);
    
  • После завершения обмена или нажмите кнопку «Назад» в Activity_2, затем установите результат / флаг, чтобы вернуть его в Activity_1 .

    setResult(RESULT_OK);//or RESULT_CANCELED based on action
    finish();
    
  • Так что вы вернетесь к Activity_1 , и вы можете проверить результат / флаг с onActivityResult (Также можно отправить данные обратно, используя Intent там)

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == YOUR_REQUEST_CODE) {
            if (resultCode == RESULT_OK) {
                //TODO your logic
            }
        }
    } 
    
...