<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                Activity擁有4個基本狀態: 活動狀態:當前Activity位于前臺,可以看見也可以獲得焦點,可以接受用戶輸入的 暫停狀態:其他Activity位于前臺,該Activity依然可見,但是不能獲得焦點(比如一個非全屏或者透明的Activity在你的Activity的上方擁有焦點),它的狀態是暫停的。一個暫停狀態下的Activity是活著的,但在系統極端低的狀態下可以被殺死 停止狀態:當一個Activity完全被另一個Activity遮蓋,它的狀態是停止的。該Activity不可見,失去焦點。這種狀態很容易被系統殺死 銷毀狀態:該Activity被系統 結束,該Activity結束或Activity所在的Dalvik進程被結束 Activity的生命周期圖: ![](https://box.kancloud.cn/2016-03-10_56e0d9b07785e.jpg) 我們來說一下Activity的生命周期過程: 運行-暫停-運行: onCreate->onStart->**onResume->****onPause->onResume** 1.啟動Activity:系統會先調用onCreate方法,然后調用onStart方法,最后調用onResume,Activity進入運行狀態。 2.當前Activity被其他Activity覆蓋其上或被鎖屏:系統會調用onPause方法,暫停當前Activity的執行。 3.當前Activity由被覆蓋狀態回到前臺或解鎖屏:系統會調用onResume方法,再次進入運行狀態。 運行-停止-運行: onCreate->onStart->onResume->**onPause->****onStop->****onRestart->****onStart->onResume** 4.當前Activity轉到新的Activity界面或按Home鍵回到主屏,自身退居后臺,不可見失去焦點:系統會先調用onPause方法,然后調用onStop方法,進入停滯狀態。 5.用戶后退回到此Activity:系統會先調用onRestart方法,然后調用onStart方法,最后調用onResume方法,再次進入運行狀態。 運行-銷毀: 6.當前Activity處于被覆蓋狀態或者后臺不可見狀態,即第2步和第4步,系統內存不足,殺死當前Activity,而后用戶退回當前Activity:再次調用onCreate方法、onStart方法、onResume方法,進入運行狀態。 7.用戶退出當前Activity:系統先調用onPause方法,然后調用onStop方法,最后調用onDestory方法,結束當前Activity。 Activity有三個關鍵的循環:? 整個的生命周期,從onCreate(Bundle)開始到onDestroy()結束。Activity在onCreate()設置所有的“全局”狀態,在onDestory()釋放所有的資源。例如:某個Activity有一個在后臺運行的線程,用于從網絡下載數據,則該Activity可以在onCreate()中創建線程,在onDestory()中停止線程。 可見的生命周期,從onStart()開始到onStop()結束。在這段時間,可以看到Activity在屏幕上,盡管有可能不在前臺,不能和用戶交互。在這兩個接口之間,需要保持顯示給用戶的UI數據和資源等,例如:可以在onStart中注冊一個IntentReceiver來監聽數據變化導致UI的變動,當不再需要顯示時候,可以在onStop()中注銷它。onStart(),onStop()都可以被多次調用,因為Activity隨時可以在可見和隱藏之間轉換。 前臺的生命周期,從onResume()開始到onPause()結束。在這段時間里,該Activity處于所有 Activity的最前面,和用戶進行交互。Activity可以經常性地在resumed和paused狀態之間切換,例如:當設備準備休眠時,當一個 Activity處理結果被分發時,當一個新的Intent被分發時。所以在這些接口方法中的代碼應該屬于非常輕量級的。 MainActivity.java ~~~ package com.example.activitylifecircle; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity { final String TAG="-Activity State-"; Button finish,start; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d(TAG, "--OnCreate--"); finish=(Button) findViewById(R.id.button1); start=(Button) findViewById(R.id.button2); start.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent=new Intent(MainActivity.this,SecondActivity.class); startActivity(intent); } }); finish.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub //結束該Activity MainActivity.this.finish(); } }); } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); Log.d(TAG, "--OnStart--"); } @Override protected void onRestart() { // TODO Auto-generated method stub super.onRestart(); Log.d(TAG, "--OnRestart--"); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); Log.d(TAG, "--OnResume--"); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); Log.d(TAG, "--OnPause--"); } @Override protected void onStop() { // TODO Auto-generated method stub super.onStop(); Log.d(TAG, "--OnStop--"); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); Log.d(TAG, "--OnDestroy--"); } @Override 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; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看