// Path: app/src/main/java/com/example/ddmeng/helloactivityandfragment/activity/BasicActivityA.java
// public class BasicActivityA extends Activity {
//     private static final String LOG_TAG = "Basic Activity";
// 
//     @Override
//     protected void onCreate(Bundle savedInstanceState) {
//         Log.i(LOG_TAG, this.getClass().getSimpleName() + " onCreate(): " + savedInstanceState);
//         super.onCreate(savedInstanceState);
//         setContentView(R.layout.basic_activity_a);
// 
//         ButterKnife.bind(this);
//     }
// 
//     @OnClick(R.id.basic_turn_to_b_button)
//     void turnToBActivity() {
//         Intent intent = new Intent();
//         intent.setClass(BasicActivityA.this, BasicActivityB.class);
//         startActivity(intent);
//     }
// 
//     @OnClick(R.id.basic_finish_a_button)
//     void finishA() {
//         finish();
//     }
// 
//     @Override
//     protected void onRestart() {
//         Log.i(LOG_TAG, this.getClass().getSimpleName() + " onRestart()");
//         super.onRestart();
//     }
// 
//     @Override
//     protected void onStart() {
//         Log.i(LOG_TAG, this.getClass().getSimpleName() + " onStart()");
//         super.onStart();
//     }
// 
//     @Override
//     public void onStateNotSaved() {
//         super.onStateNotSaved();
//         Log.d(LOG_TAG, this.getClass().getSimpleName() + " onStateNotSaved");
//     }
// 
//     @Override
//     protected void onRestoreInstanceState(Bundle savedInstanceState) {
//         Log.d(LOG_TAG, this.getClass().getSimpleName() + " onRestoreInstanceState(): " + savedInstanceState);
//         super.onRestoreInstanceState(savedInstanceState);
//     }
// 
//     @Override
//     protected void onResume() {
//         Log.i(LOG_TAG, this.getClass().getSimpleName() + " onResume()");
//         super.onResume();
//     }
// 
//     @Override
//     protected void onPause() {
//         Log.i(LOG_TAG, this.getClass().getSimpleName() + " onPause()");
//         super.onPause();
//     }
// 
//     @Override
//     protected void onSaveInstanceState(Bundle outState) {
//         super.onSaveInstanceState(outState);
//         Log.d(LOG_TAG, this.getClass().getSimpleName() + " onSaveInstanceState(): " + outState);
//     }
// 
//     @Override
//     protected void onStop() {
//         Log.i(LOG_TAG, this.getClass().getSimpleName() + " onStop()");
//         super.onStop();
//     }
// 
//     @Override
//     protected void onDestroy() {
//         Log.i(LOG_TAG, this.getClass().getSimpleName() + " onDestroy()");
//         super.onDestroy();
//     }
// }


import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.util.SparseArray;
import com.example.ddmeng.helloactivityandfragment.R;
import com.example.ddmeng.helloactivityandfragment.activity.BasicActivityA;
import butterknife.ButterKnife;
import butterknife.OnClick;
import icepick.Icepick;
import icepick.State;
        super.onRestoreInstanceState(savedInstanceState);
    }

    @Override
    protected void onResume() {
        Log.i(TAG, "onResume()");
        super.onResume();
    }

    @Override
    protected void onPause() {
        Log.i(TAG, "onPause()");
        super.onPause();
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        Log.e(TAG, "onSaveInstanceState(): " + outState);
        Icepick.saveInstanceState(this, outState);
    }

    @Override
    protected void onStop() {
        Log.i(TAG, "onStop()");
        super.onStop();
    }

    @OnClick(R.id.button_open_another_activity)
    void onOpenAnotherActivity() {
// Path: app/src/main/java/com/example/ddmeng/helloactivityandfragment/activity/BasicActivityA.java
// public class BasicActivityA extends Activity {
//     private static final String LOG_TAG = "Basic Activity";
// 
//     @Override
//     protected void onCreate(Bundle savedInstanceState) {
//         Log.i(LOG_TAG, this.getClass().getSimpleName() + " onCreate(): " + savedInstanceState);
//         super.onCreate(savedInstanceState);
//         setContentView(R.layout.basic_activity_a);
// 
//         ButterKnife.bind(this);
//     }
// 
//     @OnClick(R.id.basic_turn_to_b_button)
//     void turnToBActivity() {
//         Intent intent = new Intent();
//         intent.setClass(BasicActivityA.this, BasicActivityB.class);
//         startActivity(intent);
//     }
// 
//     @OnClick(R.id.basic_finish_a_button)
//     void finishA() {
//         finish();
//     }
// 
//     @Override
//     protected void onRestart() {
//         Log.i(LOG_TAG, this.getClass().getSimpleName() + " onRestart()");
//         super.onRestart();
//     }
// 
//     @Override
//     protected void onStart() {
//         Log.i(LOG_TAG, this.getClass().getSimpleName() + " onStart()");
//         super.onStart();
//     }
// 
//     @Override
//     public void onStateNotSaved() {
//         super.onStateNotSaved();
//         Log.d(LOG_TAG, this.getClass().getSimpleName() + " onStateNotSaved");
//     }
// 
//     @Override
//     protected void onRestoreInstanceState(Bundle savedInstanceState) {
//         Log.d(LOG_TAG, this.getClass().getSimpleName() + " onRestoreInstanceState(): " + savedInstanceState);
//         super.onRestoreInstanceState(savedInstanceState);
//     }
// 
//     @Override
//     protected void onResume() {
//         Log.i(LOG_TAG, this.getClass().getSimpleName() + " onResume()");
//         super.onResume();
//     }
// 
//     @Override
//     protected void onPause() {
//         Log.i(LOG_TAG, this.getClass().getSimpleName() + " onPause()");
//         super.onPause();
//     }
// 
//     @Override
//     protected void onSaveInstanceState(Bundle outState) {
//         super.onSaveInstanceState(outState);
//         Log.d(LOG_TAG, this.getClass().getSimpleName() + " onSaveInstanceState(): " + outState);
//     }
// 
//     @Override
//     protected void onStop() {
//         Log.i(LOG_TAG, this.getClass().getSimpleName() + " onStop()");
//         super.onStop();
//     }
// 
//     @Override
//     protected void onDestroy() {
//         Log.i(LOG_TAG, this.getClass().getSimpleName() + " onDestroy()");
//         super.onDestroy();
//     }
// }


// Path: app/src/main/java/com/example/ddmeng/helloactivityandfragment/state/StateRestoreDemoActivity.java
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.util.SparseArray;
import com.example.ddmeng.helloactivityandfragment.R;
import com.example.ddmeng.helloactivityandfragment.activity.BasicActivityA;
import butterknife.ButterKnife;
import butterknife.OnClick;
import icepick.Icepick;
import icepick.State;

        super.onRestoreInstanceState(savedInstanceState);
    }

    @Override
    protected void onResume() {
        Log.i(TAG, "onResume()");
        super.onResume();
    }

    @Override
    protected void onPause() {
        Log.i(TAG, "onPause()");
        super.onPause();
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        Log.e(TAG, "onSaveInstanceState(): " + outState);
        Icepick.saveInstanceState(this, outState);
    }

    @Override
    protected void onStop() {
        Log.i(TAG, "onStop()");
        super.onStop();
    }

    @OnClick(R.id.button_open_another_activity)
    void onOpenAnotherActivity() {
        startActivity(new Intent(this, BasicActivityA.class));