Toast не дает выключить экран

Интерфейс, диалоги, темы, стили, меню
Ответить
Lexxx_HU
Сообщения: 2
Зарегистрирован: 01 июл 2015, 14:17

Toast не дает выключить экран

Сообщение Lexxx_HU » 01 июл 2015, 14:20

Здравствуйте
Проблема вот какая
в сервисе периодически вызываю

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

Toast.makeText(getApplicationContext(), _str, Toast.LENGTH_SHORT).show();
при этом в настройка Экрана стоит - автовыключение через 15 сек неиспользования

так вот, когда вызывается Toast - экран не выключается
получается, что он расценивается как активность пользователя?

как можно решить проблему?
заранее спасибо

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Toast не дает выключить экран

Сообщение altwin » 01 июл 2015, 15:03

Cкорее свего проблема в не предсказуемости поведения потока... вы же сообщение отдаете через интент и какой -нить new Runnable? Мне кажется, просто поток остается активным по какой -то причине.. или система просто не знает че с ним делать... Я бы предпочел вообще избегать Toast из не UI потока... У вас же сервис работает независимо? т.е. даже если пользователь не использует приложение может вылести toast ? Тут явно нужен другой способ доставки сообщения... Хотя я с таким не сталкивался... может и туплю где то сильно...
Изображение

Lexxx_HU
Сообщения: 2
Зарегистрирован: 01 июл 2015, 14:17

Re: Toast не дает выключить экран

Сообщение Lexxx_HU » 01 июл 2015, 15:08

altwin писал(а):Cкорее свего проблема в не предсказуемости поведения потока... вы же сообщение отдаете через интент и какой -нить new Runnable? Мне кажется, просто поток остается активным по какой -то причине.. или система просто не знает че с ним делать... Я бы предпочел вообще избегать Toast из не UI потока... У вас же сервис работает независимо? т.е. даже если пользователь не использует приложение может вылести toast ? Тут явно нужен другой способ доставки сообщения... Хотя я с таким не сталкивался... может и туплю где то сильно...
сообщение я вывожу через handler
избежать конечно можно, но не хотелось, из сервиса я вывожу сообщение, что необходимо включит gps (если он выключен), приложение "типа трекера"

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

private void toastMakeText(final String _str) {
		mHandlerToast.post(new Runnable() {
		    public void run() {
				Toast.makeText(getApplicationContext(), _str, Toast.LENGTH_SHORT).show();

		    }
		 });
	}

Ответить