#java #android
Есть приложение с 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(); }
Ответы
Ответ 1
Нужно останавливать таймер в методе onDestroy() активити timer.cancel();
Комментариев нет:
Отправить комментарий