У меня есть приложение для Android, которое использует Bluetooth (BLE). Я разработал приложение с помощью Android Studio. Приложение может подключаться к серверу Bluetooth, а затем отправлять и получать данные.
Все работает правильно, пока я не отправляю приложение на фоновый фон, а затем снова доведу его на передний план.
после восстановления приложения оно не работает правильно, в частности, каждый раз, что Bluetooth On characteristic -Callced Callback, по изменению, является в целом. переменные не изменяются по моему собственному коду, переменные, по -видимому, каким -то образом повреждены классами Bluetooth. Проблема? < /p>
Затронутые переменные: < /p>
private int comm_state;
final WaitThread[] waitThread = new WaitThread[1];
< /code>
Я изменил их на: < /p>
private static int comm_state;
static final WaitThread[] waitThread = new WaitThread[1];
< /code>
Эти переменные также близки друг к другу в исходном коде, я не знаю, является ли это совпадением. Заявление, в котором это идет не так, составляет не менее 700 строк кода, и я уверен, что никто не хочет, чтобы я опубликовал это здесь, поэтому я опубликовал только минимум после локализации проблемы. Работает).
сразу же нажмите среднюю кнопку, чтобы отправить приложение на фон. Только что создал версию без этого, и переменные по -прежнему становятся поврежденными.
CTW. Все код Bluetooth находится в основном действии, и, насколько я знаю, есть только один экземпляр основного действия. /> Я теперь попробовал приложение на Android 11 (API 30), и оно работает правильно как со статическими переменными, так и без него.
, чтобы заставить его работать на Android 11, мне пришлось внести следующие изменения: < /p>
Изменил макет ограничения на макет координатора, чтобы я мог использовать Snackbar без контейнера /фрагмента. от: < /p>
bar[0] = Snackbar.make(activity.getCurrentFocus(), caption, Snackbar.LENGTH_INDEFINITE);
< /code>
to < /p>
bar[0] = Snackbar.make(activity.getWindow().getDecorView(), caption, Snackbar.LENGTH_INDEFINITE);
< /code>
Ранее у меня была закусочная, работающая с макетом ограничения в Android 5, но это не вызвало исключения. правильно на Android 5 без «статического» ключевого слова.
Подробнее здесь: https://stackoverflow.com/questions/796 ... emory-leak
Как статические переменные могут предотвратить утечку памяти? [закрыто] ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как статические переменные могут предотвратить утечку памяти? [закрыто]
Anonymous » » в форуме Android - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как статические переменные могут предотвратить утечку памяти? [закрыто]
Anonymous » » в форуме Android - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как статические переменные могут предотвратить утечку памяти? [закрыто]
Anonymous » » в форуме Android - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как статические переменные могут предотвратить утечку памяти? [закрыто]
Anonymous » » в форуме Android - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как статические переменные могут предотвратить утечку памяти? [закрыто]
Anonymous » » в форуме Android - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-