I am making an app that control light bulb remotely. so i require that app saves automatically the previous state(variables, onlick button, etc) and resume it after i restart the app. For example if i pressed on bulb(in my code it changes picture on click) and picture changes so when i close app and reopen it, the image shown should be changed one.
Here's my code
package room.bt4u.com.roomcontrol;
import android.media.MediaPlayer;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ImageSwitcher;
public class MainActivity extends AppCompatActivity {
ImageButton ib;
MediaPlayer toggleSound;
ImageButton aButton,aButton2;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    toggleSound=MediaPlayer.create(this, R.raw.z);
    aButton = (ImageButton) findViewById(R.id.imageButton);
    aButton2 = (ImageButton) findViewById(R.id.imageButton2);
    SharedPreferences sharedPreferences = getSharedPreferences("NAME", Context.MODE_PRIVATE);
    Boolean c = sharedPreferences.getBoolean("clicked", false);
    Boolean d = sharedPreferences.getBoolean("clicked2",false);
    if(c) {
        aButton.setImageResource(R.drawable.on);
    }
    else {
        aButton.setImageResource(R.drawable.off);
    }
    if(d){
        aButton2.setImageResource(R.drawable.on);
    }
    else {
        aButton2.setImageResource(R.drawable.off);
    }
    // ATTENTION: This was auto-generated to implement the App Indexing API.
    // See https://g.co/AppIndexing/AndroidStudio for more information.
    client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
}
public void buttonClick(View v) {
    SharedPreferences sharedPreferences = getSharedPreferences("NAME", Context.MODE_PRIVATE);
    Boolean c = sharedPreferences.getBoolean("clicked",false);
    if (!c) {
        aButton.setImageResource(R.drawable.on);
        toggleSound.start();
        sharedPreferences = getSharedPreferences("NAME", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putBoolean("clicked", true);
        editor.commit();
    }
    if(c){
        aButton.setImageResource(R.drawable.off);
        sharedPreferences = getSharedPreferences("NAME", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor = sharedPreferences.edit();
        editor.putBoolean("clicked", false);
        editor.commit();
        toggleSound.start();
    }
}
public void buttonClick2(View v) {
    SharedPreferences sharedPreferences = getSharedPreferences("NAME", Context.MODE_PRIVATE);
    Boolean d = sharedPreferences.getBoolean("clicked",false);
    if (!d) {
        aButton2.setImageResource(R.drawable.on);
        toggleSound.start();
        sharedPreferences = getSharedPreferences("NAME", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putBoolean("clicked2", true);
        editor.commit();
    }
    if(d){
        aButton2.setImageResource(R.drawable.off);
        sharedPreferences = getSharedPreferences("NAME", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor = sharedPreferences.edit();
        editor.putBoolean("clicked2", false);
        editor.commit();
        toggleSound.start();
    }
}
And here's the XML FILE
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="room.bt4u.com.roomcontrol.MainActivity"
android:orientation="vertical">
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="ROOM NO. 1046"
    android:textSize="45sp"
    android:textStyle="bold"
    android:layout_centerHorizontal="true"
    android:textColor="#0786e7"
    android:id="@+id/textView"
    android:includeFontPadding="false"
   android:gravity="center_horizontal"
    />
<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imageButton"
    android:layout_below="@+id/textView"
    android:src="@drawable/off"
    android:layout_marginTop="35dp"
    android:layout_alignParentLeft="true"
    android:background="#01FFFFFF"
    android:onClick="buttonClick"/>
<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imageButton2"
    android:layout_alignTop="@+id/imageButton"
    android:layout_below="@+id/textView"
    android:src="@drawable/off"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:background="#01FFFFFF"
    android:onClick="buttonClick2"/>
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:text="Swarnveer's"
    android:id="@+id/textView2"
    android:layout_below="@+id/imageButton"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginLeft="20dp"
    android:textStyle="bold"
    android:textColor="#f20606"/>
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:text="Sajal's"
    android:id="@+id/textView3"
    android:layout_below="@+id/imageButton2"
    android:layout_alignRight="@+id/imageButton2"
    android:layout_alignEnd="@+id/imageButton2"
    android:layout_marginRight="35dp"
    android:layout_marginEnd="35dp"
    android:textStyle="bold"
    android:textColor="#f20606"/>
</RelativeLayout>
 
     
     
     
     
    