In this tutorial we will see how and when Activity main methods are called during a classic life cycle.
Only one activity will be used in this example in order to have something easy to understand.
Let's see that.
During this video, I launched the application then I clicked on the home button to pause it.
After I clicked the application again from the list and it came back with the methods called.
I also used some Java code to display the current method name.
// Badprog.com package com.badprog.android.tutorial.badprogactivity; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.WindowManager; import android.widget.TextView; public class MainActivity extends AppCompatActivity { TextView textView_1; BadprogHelper bh = new BadprogHelper(); private int TIMER_VALUE = 500; final private int METHOD_NAME = 2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); textView_1 = (TextView) findViewById(R.id.xml_textview_1); final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); bh.formatText(this, textView_1, ste[METHOD_NAME].getMethodName()); } @Override protected void onStart() { super.onStart(); final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); bh.formatText(this, textView_1, ste[METHOD_NAME].getMethodName()); } @Override protected void onResume() { super.onResume(); final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); bh.formatText(this, textView_1, ste[METHOD_NAME].getMethodName()); } @Override protected void onPause() { super.onPause(); final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); bh.formatText(this, textView_1, ste[METHOD_NAME].getMethodName()); } @Override protected void onStop() { super.onStop(); final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); bh.formatText(this, textView_1, ste[METHOD_NAME].getMethodName()); } @Override protected void onRestart() { super.onRestart(); final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); bh.formatText(this, textView_1, ste[METHOD_NAME].getMethodName()); } @Override protected void onDestroy() { super.onDestroy(); final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); bh.formatText(this, textView_1, ste[METHOD_NAME].getMethodName()); } } // end class MainActivity
// Badprog.com package com.badprog.android.tutorial.badprogactivity; import android.support.v7.app.AppCompatActivity; import android.widget.TextView; public class BadprogHelper { private TextView textView_1; private int number = 0; /** * Manages a timer each time the method is called. * * @param aca * @param textView_0 * @param charSequence */ public void formatText(final AppCompatActivity aca, TextView textView_0, final CharSequence charSequence) { textView_1 = textView_0; textView_1.append( aca.getClass().getSimpleName() + " - " + ++number + " - " + charSequence + "\n"); } } // end of BadprogHelper
<?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="com.badprog.android.tutorial.badprogactivity.MainActivity"> <TextView android:id="@+id/xml_textview_1" android:layout_height="wrap_content" android:layout_width="fill_parent" android:scrollbars="vertical" android:layout_marginTop="10dp" android:layout_marginLeft="10dp" android:padding="10dp" android:textStyle="bold" /> </RelativeLayout>
One step after the 0ther.
You understood the life cycle with one activity, you are now ready to work with multiple activities.
Great job, you did it!
Add new comment