powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / the release() call is not always reached android
6 сообщений из 6, страница 1 из 1
the release() call is not always reached android
    #38855571
Фотография НикоДимиден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте! У меня в появляется предупреждение "the release call is not always reached android" при использовании - wl24.release();, по первому варианту.


Вариант 1
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
	PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "M78 Tag");
		

	wl24.acquire();	
	//.........	


        wl24.release();





Поискав по интернету узнал что рекомендуют использовать исключения "try-catch-finally"
После того как я использовал этот вариант, предупреждение пропало, но остался вопрос. Почему нужно использовать исключения? И что будет если я не буду их использовать?

Вариант 2
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
	PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "M78 Tag");
		
	try {
	wl24.acquire();	
	//.........	
	}
	  finally {
		wl24.release();
	  }
...
Рейтинг: 0 / 0
the release() call is not always reached android
    #38855576
Фотография НикоДимиден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НикоДимиден,
Примечание: Вместо wl24.acquire(); должно стоять wl.acquire();
...
Рейтинг: 0 / 0
the release() call is not always reached android
    #38855789
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НикоДимиденПочему нужно использовать исключения?
Не исключения, а защиту от них. Один из вызываемых методов в блоке после try подписан/throw, как допускающий исключение/exception.
НикоДимиденИ что будет если я не буду их использовать?
Пользователь будет раздосадован внезапным закрытием приложения. И удалит, ибо делается это меньше за минуту и это проще, чем разбираться.
...
Рейтинг: 0 / 0
the release() call is not always reached android
    #38856019
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все правильно это финализация. а не исключения.

и исключения не нужно использовать, их нужно обрабатывать.
...
Рейтинг: 0 / 0
the release() call is not always reached android
    #38856608
Фотография НикоДимиден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень интересно, спасибо.
То есть если я правильно понимаю обработку исключений(в данном случаи "финализацию") лучше использовать при закрытии баз данных, или все-таки можно и без неё закрывать их?
...
Рейтинг: 0 / 0
the release() call is not always reached android
    #38856714
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НикоДимиденОчень интересно, спасибо.
То есть если я правильно понимаю обработку исключений(в данном случаи "финализацию") лучше использовать при закрытии баз данных, или все-таки можно и без неё закрывать их?


да как угодно, но если
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
cursor.open() // предположим.
...
код в котором выскочит исключение
...

cursor.colse() -- до сюда не дойдет.

если

try
{
 cursor.open() // предположим.
...
код в котором выскочит исключение
...

}
finally
{
 cursor.colse(); выполниться всегда.
}


но можно же и обработать исключение
cursor.open() // предположим.
try
{
    ...
    код в котором выскочит исключение
    ...
}
catch (Exception e)
{
   //  здесь можно сделать что то.
}

cursor.close();




н если ты на 146% уверен что нигде у тебя не выскочит исключение, то можешь БД закрывать, с надежой как угодно.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / the release() call is not always reached android
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]