Thanks for the feedbacks !
I'm working on an improved version with pause mode, multiple timers and 30s increments. I will maybe release the source later, after a lot of cleaning !
For the notifications, it's the behavior of android which works by intents. Theses are sort of messages send to applications. Intents depends on something they call Context. This is very powerful since you can launch (or do whatever you want to) an application in different ways, and the behavior of the application can depend on the intent. For example, when you launch an application from the launcher on the home screen, you actually send an intent to the application.
In the Tick! case, when you click on the notification, you send an intent to bring back to foreground (if hidden) or relaunch (if closed) the application GUI (which is different from the counting "engine" which is a background process called Service). The intent sent from the notification is different from the one you used to launch it, thats why it relaunch the GUI because the system thinks it is a different context (which is the case).
You can try it : launch from the launcher, launch a timer, go back to the home screen. Now, the GUI is no more in foreground. If you open the notification bar an click on the notification it will relaunch the GUI as expected, and if you continue to click on it again, it will do nothing (as expected). That's because the second time you launched the app, you did it by sending an intent from the notificiation bar, which is different from the one from the launcher.
Now, i don't find this behavior very annoying, and I don't want to write 100 lines of code to handle differents cases! A trivial solution may exist, but I'm too novice with Android to look at it. If someone knows this easy solution, it will be a pleasure to implement it !