onpause():super.npause()がある場合でも、SuperNotCalledException
-
10-12-2019 - |
質問
のコードを使用してSharedPreferencesをテストしようとしています。developer.android.com SharedPreferences 。onstop "refer="nofollow">""と呼ばれます。問題は、上書きの最初の行がsuper.onpause()であっても、ONPAUSEがこの奇妙なエラーを与えることです。
03-09 14:41:00.883: E/AndroidRuntime(394): android.app.SuperNotCalledException: Activity {com.mobinoob.saveinfo/com.mobinoob.saveinfo.SaveInfoActivity} did not call through to super.onPause()
.
コードの例は次のとおりです。
public class SaveInfoActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
addListener();
loadText();
textSaved = "";
created = true;
}
private boolean created = false;
private void addListener() {
EditText et = (EditText) findViewById(R.id.editText1);
et.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
textSaved = s.toString();
System.out.println("text:" + textSaved);
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
});
}
private static String fileName = "savedInfo.txt";
private static String propertyName = "text";
private String textSaved;
@Override
protected void onPause() {}{
super.onPause();
if (created) {
saveText();
}
}
private void loadText() {
SharedPreferences settings = getSharedPreferences(fileName, MODE_PRIVATE);
if (settings == null)
return;
String result = settings.getString(propertyName, "");
setText(result);
}
private void saveText() {
System.out.println("saving");
SharedPreferences settings = getSharedPreferences(fileName, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString(propertyName, textSaved);
editor.commit();
}
private void setText(String result) {
TextView tv = (TextView) findViewById(R.id.textView1);
tv.setText(result);
System.out.println("restore" + result);
}
.
何かが足りないアイデア?また、onpause()もアプリケーションを起動したときにも呼ばれるため、必要なIF(作成)に注意してください。
解決
protected void onPause() {}{
.
そこには巻き毛の中かっこのペアを持っていて、空の関数のように見えます。
他のヒント
は私に簡単な版のように見えます... onpause()の直後に空のブレースに注目してください。それはあなたの方法として検出される可能性があります。
@Override
protected void onPause() {}{
super.onPause();
if (created) {
saveText();
}
}
. 所属していません StackOverflow