2016-05-13 7 views
5

画面が回転すると... Toast print nothing!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()メソッドをオーバーロードして以来、多くの開発者が抱えている非常に一般的なトラップに陥ったと思います。

間違った方法を上書きしています。あなたが欲しい1は、次のとおりです。個人的に

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

、私はクレイグMautnerがお金にAndroidの開発者は、このミスを犯すたびに寄付することを強制されるべきだと思う - source

関連する問題