2016-05-13 3 views
5

когда экран вращается ... Тост ничего не печатает!onSaveInstanceState не работает

public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 

@Override 
protected void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
    String a = savedInstanceState.getString("hello"); 
    Toast.makeText(MainActivity.this, a, Toast.LENGTH_SHORT).show(); 

} 

@Override 
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) { 
    super.onSaveInstanceState(outState, outPersistentState); 
    String a = "WTF"; 
    outState.putString("hello",a); 
} 

}

Я объявил все хорошо ,, где облом в этом простом коде!?

ответ

10

Я думаю, что вы попали в действительно общую ловушку, с которой многие разработчики с тех пор, как команда Android OS перегрузила метод onSaveInstanceState().

Вы отменяете неправильный метод. Один вы хотите:

@Override 
public void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    String a = "WTF"; 
    outState.putString("hello",a); 
} 

Лично я думаю, что Крейг Mautner должен быть вынужден пожертвовать деньги каждый раз, когда Android разработчик делает эту ошибку - source

Смежные вопросы