Страницы

Поиск по вопросам

вторник, 21 мая 2019 г.

Остановить Timer в fragment при закрытии приложения

Есть приложение с Viewpager. Когда приложение запущено, в одном из фрагментов специально постоянно идёт таймер.
При закрытии приложения выпадает такая ошибка:
E/AndroidRuntime: FATAL EXCEPTION: Timer-0 Process: com.example.administrator.myapp, PID: 6571 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.app.FragmentActivity.runOnUiThread(java.lang.Runnable)' on a null object reference at com.example.administrator.myapp.MyFragment$myTimerTask.run(MyFragment.java:228) at java.util.Timer$TimerImpl.run(Timer.java:284)
Могу предположить, что проблема в том, что при закрытии таймер из фрагмента не останавливается.
Для закрытия приложения в MainActivity использую код:
@Override public void onPause() { finish(); super.onPause(); }
Что нужно дописать, чтобы при закрытии приложения таймер в fragment останавливался или сам фрагмент закрывался?
Нижеприведённый код вставленный в fragment не подходит, так как: 1) всё равно вылетает ошибка; 2) при пролистывании фрагментов таймер останавливается, а нужно чтобы работал, когда приложение запущено.
@Override public void onPause() { getActivity().finish(); super.onPause(); }


Ответ

Нужно останавливать таймер в методе onDestroy() активити timer.cancel();

Комментариев нет:

Отправить комментарий