Android Activity生命周期

2018-02-18 18:08 更新

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

Android應(yīng)用程序的生命周期由系統(tǒng)嚴(yán)格管理。

Android在單獨(dú)的進(jìn)程中運(yùn)行每個(gè)應(yīng)用程序,每個(gè)都托管自己的虛擬機(jī)。

Activity類定義以下事件:

  • onCreate()當(dāng)首次創(chuàng)建Activity時(shí)調(diào)用
  • onStart()當(dāng)Activity對(duì)用戶可見時(shí)調(diào)用
  • onResume()當(dāng)Activity開始與用戶交互時(shí)調(diào)用
  • onPause()當(dāng)前Activity正在暫停且前一個(gè)Activity正在恢復(fù)時(shí)調(diào)用
  • onStop()當(dāng)Activity不再對(duì)用戶可見時(shí)調(diào)用
  • onDestroy() 在Activity被系統(tǒng)銷毀之前調(diào)用
  • onRestart() 當(dāng)Activity已停止并再次啟動(dòng)時(shí)調(diào)用

你不需要對(duì)所有這些方法做出反應(yīng)。

例子

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

    @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生命周期

注意

當(dāng)?shù)谝淮蝿?chuàng)建Activity時(shí),調(diào)用 onCreate()方法。

我們可以使用 onCreate()方法來創(chuàng)建UI元素。

單擊后退按鈕時(shí),Activity將被銷毀。你需要在Activity中寫入其他代碼,以在銷毀時(shí)保留其狀態(tài)。

當(dāng)Activity發(fā)送到后臺(tái)時(shí),以及當(dāng)用戶按下后退按鈕時(shí),onPause()方法被調(diào)用。

當(dāng)Activity啟動(dòng)時(shí),始終調(diào)用onStart() onResume()方法,而不管Activity是從后臺(tái)恢復(fù)還是新創(chuàng)建的。

我們應(yīng)該使用 onCreate()方法來創(chuàng)建和實(shí)例化你將在應(yīng)用程序中使用的對(duì)象。

當(dāng)你的Activity在前臺(tái)時(shí),我們應(yīng)該使用 onResume()方法來啟動(dòng)任何需要運(yùn)行的服務(wù)或代碼。

當(dāng)Activity不在前臺(tái)時(shí),我們應(yīng)該使用 onPause()方法停止任何不需要運(yùn)行的服務(wù)或代碼。

我們應(yīng)該在銷毀Activity之前使用 onDestroy()方法釋放資源。

如果應(yīng)用程序只有一個(gè)Activity并且該Activity被銷毀,那么應(yīng)用程序仍將在內(nèi)存中運(yùn)行。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)