If the app crashes and it displays a "xxxx app has stopped" prompt, then I don't know if there is a way to programmically restart the app. In this case you might need to use a hardware watchdog to power cycle the device if it doesn't receive the poll signal from your app on a regular basis (every x minutes). This method will only work with devices that don't have a battery in them such as inexpensive android boxes.
The other software-only method would be to use the StartServiceAt (or it's newer non-service version) method to set a time in the future and have your app keep readjusting this time every minute so that if your app keeps running normally, the scheduled time will never "trigger". But if your app crashes, then it will trigger and can respawn your app.