I have a service that collects data, can I save the data in case of reboot or any other action that will restart the service, and how can I do it?
You may want to make use of Android's SQLite3 support, which provides you with a lightweight relational database on the handset where you can store your data. For an introduction (as well as some other options), see: http://developer.android.com/guide/topics/data/data-storage.html
Android Services have a lifecycle like its Activities. Refer to the documentation for proper callbacks to save state before a service is shutdown.
Might I recommend the onDestroy() method.
Or use the serialization API
http://java.sun.com/developer/technicalArticles/Programming/serialization/
Can I save the data in case of reboot or any other action that will restart the service
You will not necessarily find out when those sorts of events will occur. Save your data as you go.
And how can I do it?
Use a file. Or a database, which is a type of file. Or a SharedPreferences
structure, which is backed by a type of file.