Есть приложение с 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();
Комментариев нет:
Отправить комментарий