web-dev-qa-db-ja.com

戻るボタンが押されたときの状態を保存します

Androidアプリを開発しています。戻るボタンを押すと、アプリケーションの状態が保存されます。状態を保存するために何を使用すればよいですか。これらすべてのonPause()onResume()、またはonRestoresavedInstance() ???アプリケーションの状態を保存するためにこれらのどれを使用する必要がありますか??たとえば、終了ボタンを押すと、アプリ全体が必要になりますexit私はfinish()を使用しましたか?

   public void onCreate(Bundle savedInstanceState)
   {   

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    s1=(Button)findViewById(R.id.sn1);
    s1.setOnClickListener(this);
    LoadPreferences();
    s1.setEnabled(false);
    }

    public void SavePreferences()
 {
        SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putBoolean("state", s1.isEnabled());
       }
 public void LoadPreferences()
 {
     System.out.println("LoadPrefe");
        SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
        Boolean  state = sharedPreferences.getBoolean("state", false);
        s1.setEnabled(state);
       }
 @Override
 public void onBackPressed()
 {
    System.out.println("backbutton");
    SavePreferences();
     super.onBackPressed();
 }
11
Sindu

KeyCode Backを使用する代わりに、アクティビティで以下のメソッドをオーバーライドする必要があります。

@Override
public void onBackPressed() {

    super.onBackPressed();
}

そして、SharedPrefrenceを使用してボタンの状態を保存し、次にアクティビティを入力するときにSharedpreferenceから値を取得し、それに応じてボタンの有効な状態を設定します。

例、

private void SavePreferences(){
    SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putBoolean("state", button.isEnabled());
    editor.commit();   // I missed to save the data to preference here,. 
   }

   private void LoadPreferences(){
    SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
    Boolean  state = sharedPreferences.getBoolean("state", false);
    button.setEnabled(state);
   }

   @Override
public void onBackPressed() {
    SavePreferences();
    super.onBackPressed();
}

onCreate(Bundle savedInstanceState)
{
   //just a rough sketch of where you should load the data
    LoadPreferences();
}
12
Andro Selva

あなたはこのように使うことができます

public void onBackPressed() {
    // Save settings here   
};

アクティビティがユーザーの戻るキーの押下を検出したときに呼び出されます。デフォルトの実装は単に現在のアクティビティを終了しますが、これをオーバーライドして必要なことを行うことができます。

このメソッドでアプリケーションの状態を保存します。

4
Dhaval Parmar