Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
semiromid
7 / 7 / 2
Регистрация: 28.08.2014
Сообщений: 177
#1

The release() call is not always reached android - Android

16.01.2015, 02:53. Просмотров 393. Ответов 1
Метки нет (Все метки)

Здравствуйте! У меня в появляется предупреждение "the release call is not always reached android" при использовании - wl.release();, по первому варианту.


Java
1
2
3
4
5
6
7
8
9
10
Вариант 1
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
    PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "M78 Tag");
        
 
    wl.acquire();   
    //......... 
 
 
        wl.release();




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

Java
1
2
3
4
5
6
7
8
9
10
11
Вариант 2
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
    PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "M78 Tag");
        
    try {
    wl.acquire();   
    //......... 
    }
      finally {
        wl.release();
      }
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2015, 02:53     The release() call is not always reached android
Посмотрите здесь:

Android Android
Android и С++ Android
Hello android Android
Call to super must be first statement in constructor Android
Android Android
WhatsApp call receiver Android
Get the release certificate fingerprint Android
Android Debug and release keys
Ошибка "Method call expected" при шифровании RSA Android
Создание app-release.apk для публикации в маркете Android
Android Ошибка VKSdk.initialize(Context) must be call from Application#onCreate()
Android Отличия debug режима от release

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
16.01.2015, 18:03     The release() call is not always reached android #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Потому что блок finally выполнится всегда (ну почти).

Если после acquire выскочит unchecked exception, то release никогда не будет вызван. Именно для этого нужен блок finally.
Yandex
Объявления
16.01.2015, 18:03     The release() call is not always reached android
Ответ Создать тему
Опции темы

Текущее время: 08:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru