安卓中四種實現延時操作方法 1.使用Handler 2.使用Activity裏面的view 3.使用Thread 4.使用協程

1.使用Handler

class MainActivity : AppCompatActivity() {
    private var handler = Handler(Looper.getMainLooper())
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        handler.postDelayed({
            Toast.makeText(this, "hello", Toast.LENGTH_LONG).show()
        }, 3000)
    }
}

2.使用Activity裏面的view

下面的textView是當前activity對應的佈局文件的一個View

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        textView.postDelayed({
            Toast.makeText(this, "hello", Toast.LENGTH_LONG).show()
        }, 3000)
    }
}

3.使用Thread

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        Thread(Runnable {
            Thread.sleep(3000)
            runOnUiThread {
                Toast.makeText(this, "hello", Toast.LENGTH_LONG).show()
            }
        }).start()
    }
}

4.使用協程

  1. 引入協程
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.1"
  1. 實際使用
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        GlobalScope.launch(Dispatchers.Main) {
            delay(3000)
            Toast.makeText(this@MainActivity, "hello", Toast.LENGTH_LONG).show()
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章