2016年7月10日 星期日

Android 活動(activity)的 callback function

使用者活動是繼承自 Activity 類型, 通常這樣子宣告:
                public class MyActivity extends Activity {
                // ... do something
                }
Activity 有一些 methods (它是callback functions). 當類型被創造出來時就會被執行一次的 OnCreate( ), 通常會用關鍵字 @Override 標示用來覆蓋原始的方法, 並透過父類型 super.OnCreate( ) 去初始化它:

                @Override
                public void OnCreate(Bundle savedInstanceState) {            
                   super.onCreate(savedInstanceState);
                    // ...
                }
緊接著, 當活動在使用者可視(visible)之前, OnStart( ) 會被呼叫
                public void OnStart( ) {              
                }
隨後, 當活動放到前景時, OnResume( ) 就會被呼叫
                 public void OnResume( ) {              
                }
此後使用者才可以與螢幕做互動, 如果有其他活動進入前景時, 該活動就會被暫停, 此時 OnPause( ) 會被呼叫. 如果隨後回到該活動, OnResume 會再度被呼叫
                public void OnPause( ) {              
                }
如果活動被使用者隱藏看不見時, OnStop( ) 會被呼叫, 此後當有高優先權的 app 需要用到記憶體時, 就會被系統先殺掉(kill), 隨後才呼叫 OnCreate 讓它復原
                public void OnStop( ) {              
                }
或者當使用者再度尋航到該活動時, OnRestart( )  會被先呼叫, 緊接者 OnStart( ) 再度被呼叫, 周而復始:
                public void OnRestart( ) {              
                }
但如果活動不再使用而停止 OnDestory( ) 會被先呼叫,隨後才會摧毀該活動釋放全部資源.
                 public void OnDestory( ) {              
                }

任何一個活動都可以經由方法 startActivity(Intent intent) 或 startActivityForResult(Intent intent, int requestCode)傳遞意圖(Intent)來啟動它.如果要讓活動傳回值必須透過後者,也就是startActivityForResult( )來啟動, 之後用方法onActivityResult接收傳回值再作後續處理動作:
      public void onActivityResult(int requestCode, int resultCode, Intent data){
      }


沒有留言: