Действительно ли это - хорошая практика для перезагрузки Activity
в Android?
Каков был бы лучший способ сделать это? this.finish
и затем this.startActivity
с действием Intent
?
Не думаю, что это хорошая идея ... лучше было бы реализовать более чистый метод. Например, если ваше действие содержит форму, метод очистки может просто очистить каждый виджет в форме и удалить все временные данные. Я думаю, это то, что вы хотите: восстановить активность в исходное состояние.
в некоторых случаях это лучшая практика, в других - не очень хорошая идея, все зависит от контекста если вы решили сделать это, используя следующее - это лучший способ перейти от активности к ее сыновьям :
Intent i = new Intent(myCurrentActivityName.this,activityIWishToRun.class);
startActivityForResult(i, GlobalDataStore.STATIC_INTEGER_VALUE);
дело в том, что всякий раз, когда вы завершаете() из activityIWishToRun, вы возвращаетесь к вашей живой активности
Android включает систему управления процессами, которая обрабатывает создание и уничтожение действий, что в значительной степени сводит на нет любую выгоду, которую вы получите от ручного перезапуска действия. Дополнительную информацию об этом можно найти на странице Application Fundamentals
. Однако хорошей практикой является обеспечение того, чтобы ваши методы onPause и onStop высвобождали любые ресурсы, которые вам не нужно удерживать, и использовать onLowMemory , чтобы свести ваши потребности к минимуму.
Поэкспериментировав с этим некоторое время, я не обнаружил никаких неожиданных последствий перезапуска действия. Кроме того, я считаю, что это очень похоже на то, что Android делает по умолчанию при изменении ориентации, поэтому я не вижу причин не делать этого в аналогичных обстоятельствах.