I am new to android trying to understand what the below method does
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// load the layout
setContentView(R.layout.filters);
}
My research ::
- onCreate is used to start an activity
- super is used to call the parent class constructor
- setContentView is used to set the xml
But what is this all together -
onCreate(Bundle savedInstanceState)
.... why did that bundle come
there, what is it
- What is that
super.onCreate(savedInstanceState);
some explanation in layman terms would be helpful
If you save the state of the application in a bundle (typically non-persistent, dynamic data in onSaveInstanceState), it can be passed back to onCreate if the activity needs to be recreated (e.g., orientation change). If the orientation changes(i.e rotating your device from landscape mode to portrait and vice versa), the activity is recreated and onCreate() method is called again, so that you don't lose this prior information. If no data was supplied, savedInstanceState is null.
For further information http://developer.android.com/guide/topics/resources/runtime-changes.html
Bundle is used to save & recover state information for your activity. In instances like orientation changes or killing of your app or any other scenario that leads to calling of onCreate() again, the savedInstanceState bundle can be used to reload the previous state information.
Familiarity with this article about Activity lifecycle will help.
onCreate(Bundle)
is where you initialize your activity. When Activity
is started and application is not loaded, then both onCreate()
methods will be called.
But for subsequent starts of Activity
, the onCreate()
of application will not be called.