Целевая деятельность использует Singletop в качестве Launchmode. Когда он запускается из другого приложения со следующим кодом, он показывает фрагмент A, затем пользователь переключается на фрагмент B. Затем пользователь переключается на другое приложение. Когда пользователь вступает в действие, он становится он-интенсивным и перемещается в фрагмент A., но перед показанием фрагмента A фрагмент B показан в виде мерцания.
мерцание видно со следующим кодом-< /p>
private void launchActivity() {
Intent intent = new Intent();
intent.setAction(Constants.ACTION_MAIN);
intent.addCategory(Constants.CATEGORY_LAUNCHER);
intent.setComponent(new ComponentName(Constants.PACKAGE_NAME,
Constants.ACTIVITY_CLASS_NAME));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
mContext.startActivityAsUser(intent, UserHandle.CURRENT);
}
< /code>
Но проблема не наблюдается при удалении intent.setaction (constants.action_main), и добавляется случайное дополнение, которое нигде не используется. < /p>
private void launchActivity() {
Intent intent = new Intent();
intent.setAction(Constants.ACTION_MAIN);
intent.addCategory(Constants.CATEGORY_LAUNCHER);
intent.setComponent(new ComponentName(Constants.PACKAGE_NAME,
Constants.ACTIVITY_CLASS_NAME));
intent.putExtra("extra", 0);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
mContext.startActivityAsUser(intent, UserHandle.CURRENT);
}
< /code>
Я не смог найти логическое объяснение этого. Показан фрагмент B, так как это остается в буфере? Это изменение очищает буфер?
Подробнее здесь: https://stackoverflow.com/questions/796 ... pplication
Последний фрагмент показан как мерцание при запуске из другого приложения ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение