Сравнение двух строк для Anagram с использованием хеша [закрыто]

Воссоздание активности

Существует несколько сценариев, в которых ваша деятельность уничтожена из-за обычного поведения приложения, например, когда пользователь нажимает кнопку «Назад» или ваша активность сигнализирует о своем собственном уничтожении, вызывая finish(). Система также может уничтожить вашу деятельность, если она в настоящее время остановлена ​​и не использовалась в течение длительного времени, или для работы переднего плана требуется больше ресурсов, поэтому система должна отключить фоновые процессы для восстановления памяти.

Когда ваш activity уничтожается, потому что пользователь нажимает Back или activity заканчивается сам, концепция системы этого экземпляра Activity исчезает навсегда, потому что поведение указывает, что действие больше не требуется. Однако, если система уничтожает активность из-за системных ограничений (а не обычного поведения приложения), то, хотя фактический экземпляр Activity отсутствует, система помнит, что она существовала так, что если пользователь переходит к ней, система создает новый экземпляр действия с использованием набора сохраненных данных, который описывает состояние активности, когда он был destroyed. Сохраненные данные, которые система использует для восстановления предыдущего состояния, называются «статусом экземпляра» и представляют собой набор пар ключ-значение, хранящихся в объекте Bundle.

Чтобы сохранить дополнительные данные о состоянии активности, вы должны переопределить метод обратного вызова onSaveInstanceState (). Система вызывает этот метод, когда пользователь покидает вашу активность и передает ему объект Bundle, который будет сохранен в случае неожиданного уничтожения вашей активности. Если система должна воссоздать экземпляр активности позже, он передает тот же объект Bundle как для методов onRestoreInstanceState(), так и onCreate().

Когда система начинает останавливать вашу деятельность, она вызывает onSaveInstanceState() (1), поэтому вы можете указать дополнительные данные состояния, которые вы хотите сохранить, если экземпляр Activity должен воссоздаваться. Если активность уничтожена и один и тот же экземпляр должен быть воссоздан, система передает данные состояния, определенные в (1), как методу onCreate() (2), так и методу onRestoreInstanceState() (3).

Сохранить ваше Activity состояние

По мере того, как ваше действие начинает останавливаться, система вызывает onSaveInstanceState(), поэтому ваша активность может сохранять информацию о состоянии с набором пар ключ-значение. По умолчанию реализация этого метода сохраняет информацию о состоянии иерархии представлений активности, например, текст в виджете EditText или в позиции прокрутки ListView.

Чтобы сохранить дополнительную информацию о состоянии для вашей деятельности, вы должны реализовать onSaveInstanceState() и добавить пары ключ-значение в объект Bundle. Например:

  static final String STATE_SCORE = "playerScore";
  static final String STATE_LEVEL = "playerLevel";

  @Override
  public void onSaveInstanceState(Bundle savedInstanceState) {
  // Save the user's current game state
  savedInstanceState.putInt(STATE_SCORE, mCurrentScore);
  savedInstanceState.putInt(STATE_LEVEL, mCurrentLevel);

  // Always call the superclass so it can save the view hierarchy state
  super.onSaveInstanceState(savedInstanceState);
}

Внимание: всегда вызывайте реализацию суперкласса onSaveInstanceState(), поэтому реализация по умолчанию может сохранять состояние иерархии представлений.

Восстановить ваше Activity состояние

Когда ваша деятельность воссоздана после того, как она была ранее уничтожена, вы можете восстановить сохраненное состояние из пакета, который система передает вашей деятельности. Оба метода обратного вызова onCreate() и onRestoreInstanceState() получают тот же Bundle, который содержит информацию о состоянии экземпляра.

Поскольку метод onCreate() вызывается, создает ли система новый экземпляр вашей активности или воссоздавая предыдущий, вы должны проверить, не является ли пул состояний пустым, прежде чем вы попытаетесь его прочитать. Если это значение равно null, то система создает новый экземпляр активности вместо восстановления предыдущего, который был уничтожен.

Например, вот как вы можете восстановить некоторые данные состояния в onCreate():

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState); // Always call the superclass first

 // Check whether we're recreating a previously destroyed instance
 if (savedInstanceState != null) {
    // Restore value of members from saved state
    mCurrentScore = savedInstanceState.getInt(STATE_SCORE);
    mCurrentLevel = savedInstanceState.getInt(STATE_LEVEL);
 } else {
    // Probably initialize members with default values for a new instance
 }

 }

Вместо восстановления состояния во время onCreate() вы можете выбрать onRestoreInstanceState(), который система вызывает после метода onStart(). Система вызывает onRestoreInstanceState() только в случае сохранения сохраненного состояния, поэтому вам не нужно проверять, является ли Bundle нулевым:

  public void onRestoreInstanceState(Bundle savedInstanceState) {
  // Always call the superclass so it can restore the view hierarchy
  super.onRestoreInstanceState(savedInstanceState);

  // Restore state members from saved instance
  mCurrentScore = savedInstanceState.getInt(STATE_SCORE);
  mCurrentLevel = savedInstanceState.getInt(STATE_LEVEL);
}

-5
задан Pasupuleti Vinaykumar 24 March 2019 в 19:11
поделиться

1 ответ

sub key(_) { join "", sort split //, [110] 

Если у вас был словарь,

sub key(_) { join "", sort split //, [110] 

Если у вас был словарь,

[111][0] } my $dict_qfn = "..."; my $search = "pool"; my %anagrams; { open(my $fh, '<', $dict_qfn) or die("Can't open \"$dict_qfn\": $!\n"); while (<$fh>) { chomp; push @{ $anagrams{ key([110]

Если у вас был словарь,

[111]) } }, [110]

Если у вас был словарь,

[111]; } } my @results = grep { [110]

Если у вас был словарь,

[111] ne $search } @{ $anagrams{$search} // [] }; say "Anagrams of $search: ".( @results ? "@results" : "[none]" );
[0] } if (key("pool") eq key("polo") { say "Pool and polo are anagrams of each other."; } else { say "Pool and polo aren't anagrams of each other."; }

Если у вас был словарь,

sub key(_) { join "", sort split //, [110] 

Если у вас был словарь,

[111][0] } my $dict_qfn = "..."; my $search = "pool"; my %anagrams; { open(my $fh, '<', $dict_qfn) or die("Can't open \"$dict_qfn\": $!\n"); while (<$fh>) { chomp; push @{ $anagrams{ key([110]

Если у вас был словарь,

[111]) } }, [110]

Если у вас был словарь,

[111]; } } my @results = grep { [110]

Если у вас был словарь,

[111] ne $search } @{ $anagrams{$search} // [] }; say "Anagrams of $search: ".( @results ? "@results" : "[none]" );
0
ответ дан ikegami 24 March 2019 в 19:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: