Androidとユーザーが対話するメディアActivity-ライフサイクルメソッド


前言
恋をしたことのない人は、一定の年齢になっても無邪気な恋をしたいのではないでしょうか.しかし、現実はそんなに残酷で、二人が一緒にいると無数の違いがあります.时には仕方がありません.独身の同志たちは楽しんでください.恋をしている人たちも相手を大切にしなければなりません.
Activityの紹介
まずactivityとは何かを知っておく必要があります.activityはユーザーとインタラクティブなインタフェースです.彼はユーザーとプログラムがインタラクティブなメディアです.
Activityのライフサイクル
Androidの4つのコンポーネントの学習で最も重要なのは、対応する方法で処理するためのライフサイクル方法を把握することです.
  • onCreate():このメソッドを実行するときにactivityは作成された状態で実行される基本的なアプリケーションの起動ロジックであり、activityのライフサイクルで1回しか実行されず、このメソッドの実行が終了した後に実行されるのはonStart()
  • である.
       /***
         *     
         *     activity       
         *  onCreate()        onStart()
         *            ,              ,
         *      savedInstanceState  ,     Activity       Bundle  
         */
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
            start = findViewById(R.id.startActivityId)
            start.setOnClickListener {
                Intent(this@MyActivity, StartActivity::class.java).let {
                    it.putExtra("name","myactivity")
                    it.putExtra("value","startActivity")
                    startActivity(it)
                }
            }
            startForResult = findViewById(R.id.startActivityForresultId)
            startForResult.setOnClickListener {
                Intent(this@MyActivity, StartActivityForResult::class.java).let {
                    it.putExtra("name","myactivity")
                    it.putExtra("value","startActivityForResult")
                    startActivityForResult(it, REQUEST_CODE)
                }
            }
            startForResultText = findViewById(R.id.startActivityForresultTextId)
            var name = intent.getStringExtra("name")
            onNewIntent  = findViewById(R.id.onNewIntentId)
            onNewIntent.setOnClickListener {
                Intent(this, OnNewIntentActivity::class.java).let {
                    it.putExtra("onnew",name)
                    startActivity(it)
                }
    
            }
            Log.d(TAG, "activity    ")
    
    
        } 
    
  • onStart():このメソッドを実行するときactivityは開始状態であり、activityが見えないときにこのメソッドを実行し、このメソッドの実行が終了した後にonResume()
  • を実行する
     /****
         *     
         *  activity                             
         *  onStart()        onResume()
         */
        override fun onStart() {
            super.onStart()
            Log.d(TAG, "activity:     ")
        }
    
  • onResume():このメソッドを実行するとactivityが実行され、activityがユーザと対話可能になるとこのメソッドが実行され、このメソッドではコア機能
  • が実現する.
    /****
         *            
         *  activity                ,             
         *              
         */
        override fun onResume() {
            super.onResume()
            Log.d(TAG, "activity:       ")
        }
    
  • onPause():このメソッドを実行するときactivityは一時停止状態であり、例えば戻るボタンをクリックするとき、技術的にはactivityがまだ部分的に見られることを意味し、このメソッドの実行が終了した後にonStopまたはonResume()
  • が実行される
    /***
         *     
         *                ,      。  ,     “  ” “  ”   ,       。     ,              
         *                  onStop()   onResume()
         */
        override fun onPause() {
            super.onPause()
            Log.d(TAG, "activity:       ")
        }
    
  • onStop():このメソッドを実行するとactivityが停止し、このときactivityは全く見えず、このメソッドの実行が終了した後にonDestory()またはonRestart()
  • を実行する.
    
     /****
         *     
         *            ,      。          ,         ,       ,        “   ”            。        ,            。
         *                onRestart()   onDestory()
         */
        override fun onStop() {
            super.onStop()
            Log.d(TAG, "activity:       ")
    
        }
    
    
    
  • onDestory():このメソッドを実行するときactivityは破棄された状態であり、アクティブな破棄の前にこのメソッド
  • にコールバックする.
     /***
         *     
         *         ,        。
         */
        override fun onDestroy() {
            super.onDestroy()
            Log.d(TAG, "activity:       ")
    
        }
    
    
  • onRestart():停止中のアクティビティが再起動されると、このコールバックが呼び出されます.onRestart()は、アクティビティ停止時から状態を回復します.このコールバックの後は常にonStart()
  • 
     /****
         *    “   ”            ,        。onRestart()            。
         *         onStart()
         */
        override fun onRestart() {
            super.onRestart()
            Log.d(TAG, "activity:         ")
    
        }
    
  • onNewIntent():このメソッドはactivityがsingleTopにあり、singleTask起動モードのときにactivityがすでに起動している場合にこの起動時にこのメソッド
  • をコールバックする.
  • onSaveInstanceState():アクティビティが停止するとシステムが呼び出されます.onSaveInstanceState()メソッドでは、アクティビティを殺してインスタンスステータスBundleにステータス情報を保存できます.
  • 
       /****
         *              ,onSaveInstanceState()   ,                    Bundle 。
         *
         */
        override fun onSaveInstanceState(outState: Bundle) {
          val string =   outState.run {
                putInt(STATE_SCORE, 12)
                putInt(STATE_LEVEL, 12)
                "this is xiao hei "
            }
            println("this is $string")
            super.onSaveInstanceState(outState)
    
    
        }
    
    
  • onRestoreInstanceState():保存しやすいデータを復元
  • 
    /****
         *         
         */
        override fun onRestoreInstanceState(savedInstanceState: Bundle) {
            super.onRestoreInstanceState(savedInstanceState)
            savedInstanceState.run {
                val currentScore = getInt(STATE_SCORE)
                val currentLevel = getInt(STATE_LEVEL)
                println("this is $currentLevel")
                println("this is $currentScore")
            }
        }