Есть ли способ узнать, вызван ли onresume активности, потому что кнопка «назад» или если вызвана, потому что приложение-приложение было в фоновом режиме? Мне нужно регистрировать эти разные действия:/ Это сценарий: У меня 4 активности A-B-C-D; Мне нужно, чтобы войти в навигацию между деятельностью и я не хочу, чтобы войти в onresume, вызванного после приложения из фона :)Запишите, почему активность возобновляется.
ответ
Из операции A, когда вы начнете работу B/C/D, используйте и идентификатор и запустите действие для результата.
Например:
int ActivityBID = 1;
Intent i = new Intent(this, ActivityB.class);
startActivityForResult(i, ActivityBID);
В вашей деятельности B перекручивания onBackPressed
:
@Override
public void onBackPressed() {
Intent intent = new Intent();
intent.putExtra("activity","B")
setResult(RESULT_OK, intent);
finish();
}
И поддержку на активность A:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == ActivityBID) {
if(resultCode == RESULT_OK){
String stredittext=data.getStringExtra("activity");
}
}
}
Примечание: Внутренний если и переменная не нужна, потому что вы уже знаете, из какой деятельности вы пришли, но, я думаю, y ou может захотеть передать некоторые данные в этом возвращении, поэтому я уйду.
Edit Image иллюстрировать ActivityForResult
Вы можете, например, отменить onBackPressed()
обратного вызова
@Override
public void onBackPressed() {
super.onBackPressed();
/* add your log here */
}
Сбор журнала из onResume()
плюс один (если есть), исходящий от onBackPressed()
, тогда вы можете обнаружить различные сценарии.
У меня есть 4 вида деятельности A-B-C-D; Мне нужно регистрировать навигацию между действиями, и я не хочу регистрировать onresume, вызванный обратным вызовом приложения из фона :) – aeroxr1
Когда Activity
паузе onPause()
называется. В onPause()
введите имя Activity
, которое приостанавливается в глобальную переменную static
.
Когда возобновляется Activity
, вызывается onResume()
. В onResume
проверьте, содержит ли глобальная переменная static
имя этого Activity
. Если это так, вы можете опустить журналы, потому что этот Activity
был просто приостановлен/возобновлен.
У этого способа есть небольшая проблема. Если навигация A-B-A-C, вы будете писать только A-B-C. – aeroxr1
№ При возвращении в A из B вызывается 'B.onPause()' (будет писать «B» в глобальное), тогда вызывается 'A.Resume()' (увидит, что глобальное не является «A ", поэтому он будет записывать" A "). Вы на самом деле пробовали? –
Завтра я попробую, однако кажется правильным :) – aeroxr1
- 1. onSurfaceCreated() не вызывается, когда активность возобновляется
- 2. Активность в андроиде возобновляется при изменении ориентации
- 3. Почему ZeroDivide возобновляется?
- 4. Аварийное предупреждение Диалог возобновляется, когда приложение возобновляется
- 5. VideoView перестает отображаться, когда активность возобновляется и перезапускается
- 6. Избегайте черного экрана, когда активность возобновляется в AndEngine
- 7. Активность Переход: Выполнение остановки активности, которая не возобновляется
- 8. Активность жизненного цикла/медиа возобновляется, играя на заблокированном экране
- 9. Экран предварительного просмотра камеры черный, когда активность возобновляется
- 10. Почему URLSession не возобновляется на iOS 10?
- 11. SKView приостановлено автоматически возобновляется
- 12. Почему полупрозрачная активность показывает другую непрозрачную активность?
- 13. Почему моя активность протекает?
- 14. Почему активность всплеска упала?
- 15. Почему группа Активность Устаревшие
- 16. Почему активность не создается?
- 17. Загрузка многостраничной формы возобновляется?
- 18. Task.WhenAll не возобновляется
- 19. Ожидание нитки не возобновляется
- 20. Готовая деятельность автоматически возобновляется
- 21. TabActivity не возобновляется
- 22. Задача FreeRTOS не возобновляется
- 23. Выполнение остановки деятельности, которая не возобновляется?
- 24. Почему моя активность перезапускается автоматически?
- 25. Почему эта активность не заканчивается?
- 26. Android рингтон подбирает активность, почему?
- 27. Почему активность Android странно увеличивается?
- 28. Почему моя активность андроида остановлена?
- 29. Почему активность onBackPressed не вызвана?
- 30. Почему моя активность не отображается?
Таким образом, я только записываю журнал, если нажимает на событие назад? Например: A-B-C-B с этим методом, я напишу только B, если пользователь закроет приложение без возврата в A? – aeroxr1
Таким образом, вы можете войти в 'onActivityResult', поэтому код будет отправлен, если у объекта есть ActivityResult, когда вы закрываете APP, этого не происходит. Вы можете создавать другие переменные, такие как ActivityBID, чтобы идентифицировать witch Activity, из которых они получены. –
Но в вашем коде вызывается setresult, только если пользователь нажимает кнопку «Назад»? – aeroxr1