Package com. saveInstanceDemo. src;
Import android. app. Activity;
Import android. content. Intent;
Import android. OS. Bundle;
Import android. util. Log;
Public class saveInstanceDemo extends Activity {
Private static final String TAG = "MyNewLog ";
Private int mCount = 0;
Private boolean mThreadDisble;
@ Override
Public void onCreate (Bundle savedInstanceState ){
Super. onCreate (savedInstanceState );
// If an instance of this activity had previusly stopped, we can
// Get the original text it started.
If (null! = SavedInstanceState)
{
Int IntTest = savedInstanceState. getInt ("IntTest ");
String StrTest = savedInstanceState. getString ("StrTest ");
Log. e (TAG, "onCreate get the savedInstanceState + IntTest =" + IntTest + "+ StrTest =" + StrTest );
}
SetContentView (R. layout. main );
New Thread (new Runnable ()
{
@ Override
Public void run (){
// TODO Auto-generated method stub
While (true)
{
If (! MThreadDisble)
{
Log. v (TAG, Boolean. toString (mThreadDisble ));
Try {
Thread. sleep (1000 );
}
Catch (Exception e)
{
E. printStackTrace ();
}
MCount ++;
Log. v (TAG, "mCount:" + mCount );
}
}
}
}). Start ();
Log. e (TAG, "onCreate ");
}
@ Override
// To prevent the risk of program destruction, this method ensures the correctness of important data.
// If you do not write this method, it does not mean that an error occurs. However, if you encounter some very strange data problems
// Check whether the program is reset when the program is destroyed because some important data is not saved.
Public void onSaveInstanceState (Bundle savedInstanceState ){
// Save away the original text, so we still have it if the activity
// Needs to be killed while paused.
SavedInstanceState. putInt ("IntTest", mCount );
SavedInstanceState. putString ("StrTest", "savedInstanceState test ");
Super. onSaveInstanceState (savedInstanceState );
Log. e (TAG, "onSaveInstanceState ");
}
@ Override
Public void onRestoreInstanceState (Bundle savedInstanceState ){
Super. onRestoreInstanceState (savedInstanceState );
Int mCount = savedInstanceState. getInt ("IntTest ");
String StrTest = savedInstanceState. getString ("StrTest ");
Log. e (TAG, "onRestoreInstanceState + IntTest =" + mCount + "+ StrTest =" + StrTest );
}
Public void onDestroy ()
{
Super. onDestroy ();
This. mThreadDisble = true;
}
Public void onPause ()
{
Log. v (TAG, "onPause ");
Super. onPause ();
MThreadDisble = true;
}
Public void onResume ()
{
Log. v (TAG, "onResume ");
Super. onResume ();
MThreadDisble = false;
}
}