package course.labs.activitylab; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class ActivityOne extends Activity { private static final String RESTART_KEY = "restart"; private static final String RESUME_KEY = "resume"; private static final String START_KEY = "start"; private static final String CREATE_KEY = "create"; // String for LogCat documentation private final static String TAG = "Lab-ActivityOne"; // Lifecycle counters private int mCreate; private int mStart; private int mResume; private int mRestart; private TextView mTvCreate; private TextView mTvStart; private TextView mTvResume; private TextView mTvRestart; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_one); mTvCreate = (TextView) findViewById(R.id.create); mTvStart = (TextView) findViewById(R.id.start); mTvResume = (TextView) findViewById(R.id.resume); mTvRestart = (TextView) findViewById(R.id.restart); Button launchActivityTwoButton = (Button) findViewById(R.id.bLaunchActivityTwo); launchActivityTwoButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(ActivityOne.this, ActivityTwo.class); startActivity(intent); } }); // Check for previously saved state if (savedInstanceState != null) { Log.i(TAG, "restore savedInstanceState"); mCreate = (Integer) savedInstanceState.getSerializable("mCreate"); mStart = (Integer) savedInstanceState.getSerializable("mStart"); mResume = (Integer) savedInstanceState.getSerializable("mResume"); mRestart = (Integer) savedInstanceState.getSerializable("mRestart"); } Log.i(TAG, "onCreate()"); mCreate += 1; displayCounts(); } // Lifecycle callback overrides @Override public void onStart() { super.onStart(); Log.i(TAG, "onStart()"); mStart += 1; displayCounts(); } @Override public void onResume() { super.onResume(); Log.i(TAG, "onResume()"); mResume += 1; displayCounts(); } @Override public void onPause() { super.onPause(); Log.i(TAG, "onPause()"); } @Override public void onStop() { super.onStop(); Log.i(TAG, "onStop()"); } @Override public void onRestart() { super.onRestart(); Log.i(TAG, "onRestart()"); mRestart += 1; displayCounts(); } @Override public void onDestroy() { super.onDestroy(); Log.i(TAG, "onDestroy()"); } @Override public void onSaveInstanceState(Bundle savedInstanceState) { Log.i(TAG, "onSaveInstanceState()"); savedInstanceState.putSerializable("mCreate", mCreate); savedInstanceState.putSerializable("mStart", mStart); savedInstanceState.putSerializable("mResume", mResume); savedInstanceState.putSerializable("mRestart", mRestart); } // Updates the displayed counters public void displayCounts() { mTvCreate.setText("onCreate() calls: " + mCreate); mTvStart.setText("onStart() calls: " + mStart); mTvResume.setText("onResume() calls: " + mResume); mTvRestart.setText("onRestart() calls: " + mRestart); } }