activity的生命周期

activity的生命周期

最近在重拾Android,下面的代码是对Activity生命周期的总结,可能还没吃透,一点一滴积累吧!
新建Andriod Project,新建Activity如下:

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;

/**
 * 个人总结Activity的生命周期
 */

public class MainActivity extends Activity {

    /**
     * 初始化activity的UI
     */
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        this.addLogToTextView("------onCreate()------");
    }

    /**
     * activity可能可见了,但还不是可交互的
     */
    protected void onStart() {
        super.onStart();
        this.addLogToTextView("------onStart()------");
    }

    /**
     * activity在onStop后可以通过调用此方法重新回到onStart阶段,不用再次初始化UI
     */
    protected void onRestart() {
        super.onRestart();
        this.addLogToTextView("------onRestart()------");
    }

    /**
     * activity获得焦点,在与用户交互,显示在屏幕最前端
     */
    protected void onResume() {
        super.onResume();
        this.addLogToTextView("------onResume()------");
    }

    /**
     * activity被另一个透明或者 Dialog 样式的 Activity 覆盖等等
     */
    protected void onPause() {
        super.onPause();
        this.addLogToTextView("------onPause()------");
    }

    /**
     * activity被另外一个 activity覆盖、失去焦点并不可见,失去和用戶的交互
     */
    protected void onStop() {
        super.onStop();
        this.addLogToTextView("------onStop()------");
    }

    /**
     * 销毁activity,回收占用资源
     */
    protected void onDestroy() {
        super.onDestroy();
        this.addLogToTextView("------onDestroy()------");
    }

    /**
     * 輸出activity生命週期中各個方法的調用順序
     */
    public void addLogToTextView(String str) {

        Log.e("Activity_Life", str);

    }

    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

运行结果

运行后点开应用程序,Activity可见时,可以在Logcat看到Activity执行了如下方法 onCreate()->onStart()->onResume(),此时Activity为Active状态:
Image_1

然后点击Home键,Activity会执行onPause()->onStop(),此时为Stopped状态,Logcat输出如下:
Image_2

再由Home键进入应用程序时,Activity会执行onRestart()然后onStart()->onResume(),重新回到Active状态:
Image_3

最后点击Back键,退出应用程序,Activity进入Killed状态,此时执行了如下方法onPause()->onStop()->onDestroy():
Image_4

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值