Activity生命周期

来源:互联网 发布:网贷数据交易平台 编辑:程序博客网 时间:2024/06/05 11:26

1. FirstActivity

public class FirstActivity extends AppCompatActivity {    private Button mybut = null;    @Override    protected void onCreate(Bundle savedInstanceState) {        Log.d("log","{A}FirstActivity-->onCreate()");        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        this.mybut = (Button)findViewById(R.id.mybut);        this.mybut.setOnClickListener(new OnClickListenerWeb());    }    private class OnClickListenerWeb implements View.OnClickListener {        @Override        public void onClick(View v) {            Intent it = new Intent(FirstActivity.this,SecondActivity.class);            FirstActivity.this.startActivity(it);        }    }    @Override    protected void onStart() {       Log.d("log","{A}FirstActivity-->onStart()");        super.onStart();    }    @Override    protected void onResume() {       Log.d("log","{A}FirstActivity-->onStart()");        super.onResume();    }    @Override    protected void onPause() {       Log.d("log","{A}FirstActivity-->onPause()");        super.onPause();    }    @Override    protected void onStop() {       Log.d("log","{A}FirstActivity-->onStop()");        super.onStop();    }    @Override    protected void onRestart() {       Log.d("log","{A}FirstActivity-->onRestart()");        super.onRestart();    }    @Override    protected void onDestroy() {       Log.d("log","{A}FirstActivity-->onDestroy()");        super.onDestroy();    }}

2. SecondActivity

public class SecondActivity extends AppCompatActivity {    private Button mybut = null;    @Override    protected void onCreate(Bundle savedInstanceState) {        Log.d("log", "{B}SecondActivity-->onCreate()");        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_second);        this.mybut = (Button)findViewById(R.id.mybut);        this.mybut.setOnClickListener(new OnClickListenerWeb());    }    private class OnClickListenerWeb implements View.OnClickListener {        @Override        public void onClick(View v) {            Intent it = new Intent(SecondActivity.this,FirstActivity.class);            SecondActivity.this.startActivity(it);            SecondActivity.this.finish();   //销毁操作        }    }  @Override    protected void onStart() {        Log.d("log", "{B}SecondActivity-->onStart()");        super.onStart();    }    @Override    protected void onResume() {        Log.d("log", "{B}SecondActivity-->onStart()");        super.onResume();    }    @Override    protected void onPause() {        Log.d("log", "{B}SecondActivity-->onPause()");        super.onPause();    }    @Override    protected void onStop() {        Log.d("log", "{B}SecondActivity-->onStop()");        super.onStop();    }    @Override    protected void onRestart() {        Log.d("log", "{B}SecondActivity-->onRestart()");        super.onRestart();    }    @Override    protected void onDestroy() {        Log.d("log", "{B}SecondActivity-->onDestroy()");        super.onDestroy();    }}

3. activity_main.xml

<Button    android:id="@+id/mybut"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="启动第二个Activity程序"/>

4. activity_second.xml

<Button    android:id="@+id/mybut"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="返回第一个Activity程序"/>

如果有多个Activity,会按照先进后出的原则入栈出栈。但是如果中间的某个Activity点用了finish()方法,则这个Activity就不会入栈。程序一旦调用了finish()方法,则意味着被销毁,所以不会入栈。


2 0