Activity生命周期的运行流程
2017-06-22 21:41
316 查看
Activity的生命周期运行流程:
·当Activity第1次被启动:
·onCreate()->onStart()->onResume()
·当Activity被遮挡后再次显示:
·onRestart->onStart()->onResume()
·当Activity被遮挡:
·onPause()->onStop()
·当点击返回(Back)键:
·onPause()->onStop()->onDestroy()
详细请參看測试案例:
创建三个Activity
MainActivity
SecondActivity
SmallActivity(小号的Activity。在激活的时候仅仅会遮挡上一个Activity的一部分。即:上一个Activity不会全然被
smallActivity遮挡,所以这样的情况上一个Activity不会onStop())
SmallActivity创建的时候要做特殊调整
在配置文件里调整ctivity的主题为:
android:theme="@android:style/Theme.Translucent.NoTitleBar"
在布局文件里调整
把根节点调整大小为以下的大小,
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="200dp"
android:layout_height="200dp"
android:background="#207044"
tools:context=".SmallActivity" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="SmallActivity"
android:textSize="30sp" />
</RelativeLayout>
MainActivity:
SecondActivity:
SmallActivity:
·当Activity第1次被启动:
·onCreate()->onStart()->onResume()
·当Activity被遮挡后再次显示:
·onRestart->onStart()->onResume()
·当Activity被遮挡:
·onPause()->onStop()
·当点击返回(Back)键:
·onPause()->onStop()->onDestroy()
详细请參看測试案例:
创建三个Activity
MainActivity
SecondActivity
SmallActivity(小号的Activity。在激活的时候仅仅会遮挡上一个Activity的一部分。即:上一个Activity不会全然被
smallActivity遮挡,所以这样的情况上一个Activity不会onStop())
SmallActivity创建的时候要做特殊调整
在配置文件里调整ctivity的主题为:
android:theme="@android:style/Theme.Translucent.NoTitleBar"
在布局文件里调整
把根节点调整大小为以下的大小,
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="200dp"
android:layout_height="200dp"
android:background="#207044"
tools:context=".SmallActivity" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="SmallActivity"
android:textSize="30sp" />
</RelativeLayout>
MainActivity:
package com.example.activity_test; import android.location.GpsStatus.Listener; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.util.Log; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; public class MainActivity extends Activity { private final String TAG = "Activity LifeCycle"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d(TAG, "MainActivity -> onCreate()"); InnerOnClickListener listener = new InnerOnClickListener(); findViewById(R.id.btn_SecondActivity).setOnClickListener(listener); findViewById(R.id.btn_Small).setOnClickListener(listener); } private class InnerOnClickListener implements OnClickListener{ @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.btn_SecondActivity: startActivity(new Intent(getApplicationContext(),SecondActivity.class)); break; case R.id.btn_Small: startActivity(new Intent(getApplicationContext(),SmallActivity.class)); break; default: break; } } } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); Log.d(TAG, "MainActivity -> onStart()"); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); Log.d(TAG, "MainActivity -> onResume()"); } @Override protected void onRestart() { // TODO Auto-generated method stub super.onRestart(); Log.d(TAG, "MainActivity -> onRestart()"); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); Log.d(TAG, "MainActivity -> onPause()"); } @Override protected void onStop() { // TODO Auto-generated method stub super.onStop(); Log.d(TAG, "MainActivity -> onStop()"); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); Log.d(TAG, "MainActivity -> onDestroy()"); } }
SecondActivity:
package com.example.activity_test; import android.os.Bundle; import android.app.Activity; import android.util.Log; import android.view.Menu; public class SecondActivity extends Activity { private final String TAG = "Activity LifeCycle"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); Log.e(TAG, "SecondActivity -> onCreate()"); } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); Log.e(TAG, "SecondActivity -> onStart()"); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); Log.e(TAG, "SecondActivity -> onResume()"); } @Override protected void onRestart() { // TODO Auto-generated method stub super.onRestart(); Log.e(TAG, "SecondActivity -> onRestart()"); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); Log.e(TAG, "SecondActivity -> onPause()"); } @Override protected void onStop() { // TODO Auto-generated method stub super.onStop(); Log.e(TAG, "SecondActivity -> onStop()"); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); Log.e(TAG, "SecondActivity -> onDestroy()"); } }
SmallActivity:
package com.example.activity_test; import android.os.Bundle; import android.app.Activity; import android.util.Log; import android.view.Menu; public class SmallActivity extends Activity { private final String TAG = "Activity LifeCycle"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_small); Log.i(TAG, "SmallActivity -> onCreate()"); } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); Log.i(TAG, "SmallActivity -> onStart()"); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); Log.i(TAG, "SmallActivity -> onResume()"); } @Override protected void onRestart() { // TODO Auto-generated method stub super.onRestart(); Log.i(TAG, "SmallActivity -> onRestart() "); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); Log.i(TAG, "SmallActivity -> onPause()"); } @Override protected void onStop() { // TODO Auto-generated method stub super.onStop(); Log.i(TAG, "SmallActivity -> onStop()"); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); Log.i(TAG, "SmallActivity -> onDestroy()"); } }
相关文章推荐
- 浅谈Android的Activity运行流程(生命周期)
- Activity的生命周期运行
- JSF运行流程和生命周期介绍
- Activity的Launch Mode的理解以及相对应的生命周期的运行
- Activity 的运行时生命周期模型
- Android基础学习【历史流程重走】 ---- Activity的生命周期
- Activity的生命周期的运行情况
- Mark :JSF运行流程和生命周期
- Android 当App内存不足或在后台运行时回收部分activity的流程分析。
- 插件化开发---DroidPlugin对Activity启动流程、生命周期的管理
- [转]Activity的运行时生命周期模型
- 横竖屏切换Activity和activity跳转时生命周期的流程
- 退出Dialog时,Activity的生命周期运行情况
- Activity生命周期各个阶段实现流程
- Activity生命周期的执行流程
- activity和fragment之前运行的生命周期
- Activity 跳转时的生命周期流程
- Activity启动流程和生命周期
- Activity各种特殊情况下的生命周期流程以及Activity重难点问题
- 理解Android生命周期(一):activity