How would I programmatically determine when an android device has rebooted (whether on its own, or user initiated) ?
Use a BroadcastReceiver and listen to the broadcast Intent ACTION_BOOT_COMPLETED.