Correct me if I'm wrong, but isn't the purpose of 'cooperative multitasking' that the OPERATING SYSTEM decides when to halt and execute running software in a fast "app switching or another funny description" method? The other alternative would be "preemptive multitasking", which is where the APPLICATION decides when to allow another application to be able to have a slice of time and the operating system isn't deciding when to halt and execute running software. My impression is that each of these systems employs some mixture of BOTH of these multitasking principles. In the case of Android, at least, I know you can use BOTH methods and the author can employ either method on a per-thread level.
"If there is too little RAM, processes hosting services will be immediately killed like background processes are. However, if appropriate, Android will remember that these services wish to remain running, and restart their process at a later time when more RAM is available. For example, if the user goes to a web page that requires large amounts of RAM, Android may kill background service processes like sync until the browser's memory needs go down."