Android – интерфейс приложения не обновляется/не обновляетсяAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Android – интерфейс приложения не обновляется/не обновляется

Сообщение Anonymous »

Я написал приложение с простой кнопкой, которая меняет цвет при нажатии (пример ниже).

Если на моем телефоне нажать кнопку питания, экран выключится.
Если нажать еще раз, экран снова включится, и я снова увижу свое приложение (блокировка экрана отключена).

Я вызываю этот цикл.

Если эта процедура выполняется один раз (один цикл), я могу нажать кнопку в своем приложении, и она будет менять цвет при каждом нажатии.

Однако, если я нажимаю кнопку питания дважды или более раз, графический интерфейс/пользовательский интерфейс/макет моего приложения больше не обновляется, и кнопка остается в том цвете, который был до нажатия кнопки питания.

Что сбивает с толку, так это то, что logcat по-прежнему показывает AADEBUG сообщения. Цвет просто не обновляется.

У меня нет опыта программирования приложений.

Нужно ли что-нибудь, например перефокусировать/обновить приложение?

/>Если я нажму кнопку «Обзор приложения» на панели навигации и выберу оттуда свое приложение, оно продолжит работать. Даже после нескольких циклов включения кнопки питания. Это также работает, если я использую блокировку экрана, но не хочу ее использовать.

Мое настоящее приложение более сложное, но я смог воспроизвести проблему даже в этом простом примере. Чего мне не хватает?

Код: Выделить всё

package com.example.testapp

import android.os.Bundle
import android.util.Log
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {

private var onetwo = 0

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

val testButton: Button = findViewById(R.id.btnPlay)

testButton.setOnClickListener {
if (onetwo == 0){
Log.d("AADEBUG", "one")
testButton.backgroundTintList = getColorStateList(R.color.white)
onetwo = 1
} else {
Log.d("AADEBUG", "two")
testButton.backgroundTintList = getColorStateList(R.color.purple_200)
onetwo = 0
}
}
}

override fun onResume() {
super.onResume()
Log.d("AAActivityState", "onResume called")
}

override fun onPause() {
super.onPause()
Log.d("AAActivityState", "onPause called")
}

override fun onDestroy() {
super.onDestroy()
}
}

Обновление

Предполагается, что приложение будет работать на Sony Xperio XZ1 Compact с Android 9.

Блокировка экрана отключена.

Запущено только мое приложение.

Если я один раз нажму кнопку питания, дисплей выключится.

/>Если я нажму ее еще раз, приложение снова отобразится напрямую, поскольку блокировка экрана отсутствует.

Если я сделаю это дважды или чаще, макет/пользовательский интерфейс приложения не обновится. больше, но приложение отзывчиво. Если я воспроизвожу разные звуки в дополнение к тому, что кнопка меняет свой цвет, воспроизводятся разные звуки. Но цвет кнопки не меняется.

Если я использую смахивание в качестве блокировки экрана, все работает нормально и макет приложения обновляется.

Это только кажется например, интерфейс не восстанавливается после нажатия кнопки питания, если нет блокировки экрана или общего обновления пользовательского интерфейса.

Однако другие стандартные приложения на телефоне реагируют в той же ситуации, поэтому так и происходит. похоже, это не общая проблема Android/оборудования.

Подробнее здесь: https://stackoverflow.com/questions/790 ... refreshing
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»