A week after the previous update, I started getting crash reports on the Android developer dashboard. The core reason for the crashes was that I started building Dindy against a newer Android platform version. As a result, a compatibility hack related to how services are started stopped doing its work and Dindy started crashing.
To those of you who are interested, the difference is that Service.startService() started returning START_STICKY instead of START_STICKY_COMPATIBILITY.
I consider this very poor backward compatibility support on Android’s side. It also forced me to deal with Dindy’s service being killed by the Android platform at any given time. The solution wasn’t a trivial one – I had to add a new table to the database to save Dindy’s runtime state.
At least now hopefully (and excluding other bugs) Dindy will work on most phones, even those where the service is being killed for no reason.