Гость
Форумы / Android [игнор отключен] [закрыт для гостей] / the release() call is not always reached android / 6 сообщений из 6, страница 1 из 1
15.01.2015, 20:44
    #38855571
НикоДимиден
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
the release() call is not always reached android
Здравствуйте! У меня в появляется предупреждение "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
15.01.2015, 20:49
    #38855576
НикоДимиден
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
the release() call is not always reached android
НикоДимиден,
Примечание: Вместо wl24.acquire(); должно стоять wl.acquire();
...
Рейтинг: 0 / 0
16.01.2015, 09:13
    #38855789
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
the release() call is not always reached android
НикоДимиденПочему нужно использовать исключения?
Не исключения, а защиту от них. Один из вызываемых методов в блоке после try подписан/throw, как допускающий исключение/exception.
НикоДимиденИ что будет если я не буду их использовать?
Пользователь будет раздосадован внезапным закрытием приложения. И удалит, ибо делается это меньше за минуту и это проще, чем разбираться.
...
Рейтинг: 0 / 0
16.01.2015, 12:17
    #38856019
Джибс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
the release() call is not always reached android
все правильно это финализация. а не исключения.

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


да как угодно, но если
Код: 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
Форумы / Android [игнор отключен] [закрыт для гостей] / the release() call is not always reached android / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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