2016-07-11 8 views
-1

sharePreferences를 사용하여 활동에 값을 저장하는 방법을 연구 한 후에도 데이터 저장 방법에 대해 여전히 질문이 있습니다.sharedPreferences가 데이터를 저장하는 방법

활동을 종료하기 위해 뒤로 버튼을 누른 후 Android는 일반적으로 OnPause, OnStopOnDestroy을 호출합니다. 그러나 sharedPreferences를 사용하는 방식에서는 아래 코드와 같이 OnPause 메서드 내부에서 호출합니다.

public class MainActivity extends AppCompatActivity { 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mEditText = (EditText)findViewById(R.id.editText); 
    mSharedPreferences = getSharedPreferences(PREFS, Context.MODE_PRIVATE); 
    mEditor =mSharedPreferences.edit(); 

    String editTextString = mSharedPreferences.getString(EDIT_TEXT, ""); 
    mEditText.setText(editTextString); 
} 


@Override 
protected void onPause() { 
    super.onPause(); 

    mEditor.putString(EDIT_TEXT, mEditText.getText().toString()); 
    mEditor.apply(); 
} 

이 경우, 활동으로 돌아갈 때 무언가를 입력하고 뒤로 버튼을 사용하여 활동을 종료합니다. 안드로이드는 활동이 멈추고 파괴 된 후에 EditText에 입력 한 것을 계속 보여줄 수 있습니다. 활동 을 포커스를 잃으면

+0

이 모양을보십시오. http://stackoverflow.com/questions/38282021/how-do-i-store-if-a-checkbox-has-been-checked/38282050#38282050 – sushildlh

+0

sharePreferences를 사용하여 값을 저장하고 있습니다. 그래서 파괴 또는 안드로이드 여전히 그 값을 그 가게를 가지고 중지 ... –

+0

당신은 그것을 보여줍니다'mEditText.setText (editTextString)' – tynn

답변

0

onPause는 항상 호출됩니다. 다른 앱으로 전환하거나, 활동을 전환하거나, 휴대 전화 나 다른 기기를 끄십시오.

뒤로 버튼을 누르면 이 호출되고 sharedpreference의 값이 저장됩니다. 그 후 onStoponDestroyget called in the order written. 다음에 액티비티가 생성 될 때 저장된 sharedpref 값을 가져 오므로 표시됩니다.

관련 문제