Два последовательных сообщения Toast не будут отображаться, когда они вызываются точно друг за другом на Android Oreo - PullRequest
0 голосов
/ 19 октября 2018

Следующий код правильно отображает два последовательных сообщения на устройствах с Android version lower than 27, но на Android version 27 он просто показывает сообщение первого Toast.

Что изменилось в Android 27, чтозаставляет его вести себя по-другому?

Должны ли два последовательных сообщения Toast иметь промежуток, превышающий определенное время?

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

    Toast.makeText(this, "The onCreate method is called", Toast.LENGTH_SHORT).show()
}

override fun onResume() {
    super.onResume()

    Toast.makeText(this, "The onResume method is called", Toast.LENGTH_SHORT).show()
}

1 Ответ

0 голосов
/ 20 октября 2018

Вам нужно написать небольшую программу, которая отслеживает состояниеЯ запустил API 26 и API 27, и эта строка кода вызывается только при переходе назад из другой операции

Toast.makeText(this, "The onResume method is called", Toast.LENGTH_SHORT).show()

Наслаждайтесь

OK Вот как вы пишете небольшую программу, которая отслеживает состояниеЭто действие, которое дает вам вывод, установите logcat для отладки, отметьте TAG

open class BaseActivity : AppCompatActivity() {

val TAG = "LifeCycle"

override fun onCreate(savedInstanceState: Bundle?) {
    Log.d(TAG, "${javaClass.simpleName} OnCreate")
    println("========================== OnCreate")
    super.onCreate(savedInstanceState)
}

override fun onStart() {
    Log.d(TAG, "${javaClass.simpleName} OnStart")
    println("========================== OnStart")
    super.onStart()
}

override fun onResume() {
    Log.d(TAG, "${javaClass.simpleName} OnResume")
    println("========================== OnResume")
    super.onResume()
}

override fun onRestart() {
    Log.d(TAG, "${javaClass.simpleName} OnRestart")
    println("========================== OnRestart")
    super.onRestart()
}

override fun onPause() {
    Log.d(TAG, "${javaClass.simpleName} OnPause")
    println("========================== OnPause")
    super.onPause()
}

override fun onStop() {
    Log.d(TAG, "${javaClass.simpleName} OnStop")
    println("========================== OnStop")
    super.onStop()
}

override fun onDestroy() {
    Log.d(TAG, "${javaClass.simpleName} OnDestroy")
    println("========================== OnDestroy")
    super.onDestroy()
}

}

Затем при переходе от одного занятия к другому вы получите выводПри условии, что вы используете этот заголовок в классе

class WelcomeActivity : BaseActivity() {
...