If I run this code on Android 6 or 5, I get zero errors and it runs as normal.
//pass in a Date[] array
countdownServiceIntent.putExtra("timingsArray", timings);
startService(countdownServiceIntent);//start the service
//receive the array in another class (service class)
protected void onHandleIntent(Intent intent)
{
try
{ //get the Date[] array from the intent
times = (Date[]) intent.getSerializableExtra("timingsArray");
}
catch (Exception e)
{
e.printStackTrace();
return;
}
}
If I run that same code, on a phone running any version of Android 4.0 (I tested on 4.4 and 4.2), I get a java.lang.ClassCastException. I want to know why that is? It makes no sense.
I have declared my service class inside my Manifest file as well.
<service android:name=".CountDownService" android:enabled="true"/>
Here's my stack trace:
02-14 18:46:40.146: W/System.err(20047): java.lang.ClassCastException: java.lang.Object[] cannot be cast to java.util.Date[]
02-14 18:46:40.146: W/System.err(20047): at com.karimo.stopwatch.CountDownService.onHandleIntent(CountDownService.java:43)
02-14 18:46:40.146: W/System.err(20047): at com.karimo.stopwatch.CountDownService.onStartCommand(CountDownService.java:69)
02-14 18:46:40.146: W/System.err(20047): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2726)
02-14 18:46:40.146: W/System.err(20047): at android.app.ActivityThread.access$2100(ActivityThread.java:144)
02-14 18:46:40.146: W/System.err(20047): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1302)
02-14 18:46:40.146: W/System.err(20047): at android.os.Handler.dispatchMessage(Handler.java:102)
02-14 18:46:40.146: W/System.err(20047): at android.os.Looper.loop(Looper.java:136)
02-14 18:46:40.146: W/System.err(20047): at android.app.ActivityThread.main(ActivityThread.java:5146)
02-14 18:46:40.146: W/System.err(20047): at java.lang.reflect.Method.invokeNative(Native Method)
02-14 18:46:40.146: W/System.err(20047): at java.lang.reflect.Method.invoke(Method.java:515)
02-14 18:46:40.146: W/System.err(20047): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732)
02-14 18:46:40.146: W/System.err(20047): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
02-14 18:46:40.146: W/System.err(20047): at dalvik.system.NativeStart.main(Native Method)