codecamp

Android Activity生命周期

Activity基类定义了一系列管理Activity生命周期的事件。

Android应用程序的生命周期由系统严格管理。

Android在单独的进程中运行每个应用程序,每个都托管自己的虚拟机。

Activity类定义以下事件:

  • onCreate()当首次创建Activity时调用
  • onStart()Activity对用户可见时调用
  • onResume()Activity开始与用户交互时调用
  • onPause()当前Activity正在暂停且前一个Activity正在恢复时调用
  • onStop()Activity不再对用户可见时调用
  • onDestroy() 在Activity被系统销毁之前调用
  • onRestart()Activity已停止并再次启动时调用

你不需要对所有这些方法做出反应。

例子

package cn.w3cschool.app;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
/*from www.w3cschool.cn*/
public class MainActivity extends Activity {
    String tag = "www.w3cschool.cn";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.d(tag, "In the onCreate() event");
    }

    public void onStart()
    {
        super.onStart();
        Log.d(tag, "In the onStart() event");
    }

    public void onRestart()
    {
        super.onRestart();
        Log.d(tag, "In the onRestart() event");
    }

    public void onResume()
    {
        super.onResume();
        Log.d(tag, "In the onResume() event");
    }

    public void onPause()
    {
        super.onPause();
        Log.d(tag, "In the onPause() event");
    }

    public void onStop()
    {
        super.onStop();
        Log.d(tag, "In the onStop() event");
    }

    public void onDestroy()
    {
        super.onDestroy();
        Log.d(tag, "In the onDestroy() event");
    }
}
Activity生命周期

注意

当第一次创建Activity时,调用 onCreate()方法。

我们可以使用 onCreate()方法来创建UI元素。

单击后退按钮时,Activity将被销毁。你需要在Activity中写入其他代码,以在销毁时保留其状态。

Activity发送到后台时,以及当用户按下后退按钮时,onPause()方法被调用。

Activity启动时,始终调用onStart() onResume()方法,而不管Activity是从后台恢复还是新创建的。

我们应该使用 onCreate()方法来创建和实例化你将在应用程序中使用的对象。

当你的Activity在前台时,我们应该使用 onResume()方法来启动任何需要运行的服务或代码。

Activity不在前台时,我们应该使用 onPause()方法停止任何不需要运行的服务或代码。

我们应该在销毁Activity之前使用 onDestroy()方法释放资源。

如果应用程序只有一个Activity并且该Activity被销毁,那么应用程序仍将在内存中运行。

Android Activity
Android Intent意图
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }