В onCreate создается таймер, который каждые 15 секунд запускает AsyncTask поток, после того как активити или все приложение закрывается, таймер все равно продолжает запускать этот поток. Если в onDestroy или по нажатию кнопки выполняется команда timer.cancel();, то активити выдает ошибку.
вот код таймера
в onCreate
Timer timer = new Timer();
MyTimerTask task = new MyTimerTask();
timer.schedule(task,0, 15 * 1000);
}
TimerTask
class MyTimerTask extends TimerTask {
public void run() {
String streamUrl = "ссылка";
metadataTask =new MetadataTask();
try {
metadataTask.execute(new URL(streamUrl));
} catch (MalformedURLException e) {
e.printStackTrace();
}
String title_artist;
try {
streamMeta.refreshMeta();
title_artist = streamMeta.getStreamTitle();
Log.i("ARTIST TITLE", title_artist);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
в onDestroy делаю timer.cancel();
и при закрытии
12-31 19:09:04.220: E/AndroidRuntime(1816): FATAL EXCEPTION: main
12-31 19:09:04.220: E/AndroidRuntime(1816): java.lang.RuntimeException: Unable to destroy activity {com.example.kgw/com.example.kgw.TimerActivity}: java.lang.NullPointerException
12-31 19:09:04.220: E/AndroidRuntime(1816): at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3499)
12-31 19:09:04.220: E/AndroidRuntime(1816): at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3517)
12-31 19:09:04.220: E/AndroidRuntime(1816): at android.app.ActivityThread.access$1200(ActivityThread.java:141)
12-31 19:09:04.220: E/AndroidRuntime(1816): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1309)
12-31 19:09:04.220: E/AndroidRuntime(1816): at android.os.Handler.dispatchMessage(Handler.java:99)
12-31 19:09:04.220: E/AndroidRuntime(1816): at android.os.Looper.loop(Looper.java:137)
12-31 19:09:04.220: E/AndroidRuntime(1816): at android.app.ActivityThread.main(ActivityThread.java:5103)
12-31 19:09:04.220: E/AndroidRuntime(1816): at java.lang.reflect.Method.invokeNative(Native Method)
12-31 19:09:04.220: E/AndroidRuntime(1816): at java.lang.reflect.Method.invoke(Method.java:525)
12-31 19:09:04.220: E/AndroidRuntime(1816): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
12-31 19:09:04.220: E/AndroidRuntime(1816): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
12-31 19:09:04.220: E/AndroidRuntime(1816): at dalvik.system.NativeStart.main(Native Method)
12-31 19:09:04.220: E/AndroidRuntime(1816): Caused by: java.lang.NullPointerException
12-31 19:09:04.220: E/AndroidRuntime(1816): at com.example.kgw.TimerActivity.onDestroy(TimerActivity.java:313)
12-31 19:09:04.220: E/AndroidRuntime(1816): at android.app.Activity.performDestroy(Activity.java:5302)
12-31 19:09:04.220: E/AndroidRuntime(1816): at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1117)
12-31 19:09:04.220: E/AndroidRuntime(1816): at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3486)
12-31 19:09:04.220: E/AndroidRuntime(1816): ... 11 more