I read about the problem but I can't find where is my mistake. I have dates in my Datebase and when I retrieve them and try to compare them with the current date this error comes in the logcat:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.hpdemon.diploma, PID: 9879
java.lang.RuntimeException: Unable to start receiver com.example.hpdemon.diploma.BroadcastManager: java.lang.IllegalArgumentException: Bad class: class java.lang.String
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2417)
at android.app.ActivityThread.access$1700(ActivityThread.java:138)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1275)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5034)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:731)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalArgumentException: Bad class: class java.lang.String
at java.text.DateFormat.format(DateFormat.java:296)
at java.text.Format.format(Format.java:93)
at com.example.hpdemon.diploma.BroadcastManager.onReceive(BroadcastManager.java:51)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2410)
at android.app.ActivityThread.access$1700(ActivityThread.java:138)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1275)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5034)
at java.lang.reflect.Method.invokeNative(Native Method)
The error comes on this line deadline = new Date(deadline.getTime() - 604800000L);
My code is:
Users_Database db = new Users_Database(context);
String currentUsrname = PreferenceManager.getDefaultSharedPreferences(context).getString("USRNFORBROADCAST", "NothingFound");
List<String> dates=db.getAllDates(db.findID(currentUsrname));
String dateIns = "";
String dateVin = "";
String dateTax = "";
// int tyres;
dateIns=(dates.get(0));
dateVin=(dates.get(1));
dateTax=(dates.get(2));
dateIns = dateIns.replaceAll("\n", "");
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Calendar c = Calendar.getInstance();//текуща дата
Date todayDate = c.getTime();
Date deadline=c.getTime();
try {
todayDate = sdf.parse(sdf.format(todayDate.getTime()));
deadline = sdf.parse(sdf.format(dateIns));
deadline = new Date(deadline.getTime() - 604800000L);
} catch (ParseException e) {
e.printStackTrace();
}
if (todayDate.before(deadline) /*&& hour.equals(yourHour)*/) {
Intent it = new Intent(context, BootServices.class);
createNotification(context, it, "I Love My Car", "Краен срок!", "Изтичащ преглед");
context.startService(it);
}