Perhaps you may want to look into hibernating the applications as opposed to killing them with a task-killer.
The former is advantageous, since it takes care of all background services of the given app and prevent them from waking up, until such a time when the user executes them.
One candidate in mind perhaps the popular one is Greenify. One XDA user(lioux) has been generous enough to provide a detailed mechanism of Greenify;
It (Greenify) is a GUI (graphical interface) that lets you select applications
that you don't want running on the background, starting automatically
when the phone boots or responding to intents.
It provides useful data
about running applications so that you may make an informed decision.
It uses the android command
am to stop an application. It will no
longer start during phone boot, respond to registered intents or be
triggered by alarms from the system:
am force-stop package.name
am start package.name
Everything it does is temporary. The
am command does not touch the
installed files or any configuration information. It merely tells the
system to "forget" about the application.
The system re-learns some of the intents again the next time the
application is executed: launched by the user or launched by another
If the application does not behave as expected after being awakened,
remove it from Greenify then reboot your phone.
Some applications do
not re-register events when executed. Sometimes, they only do it at
boot. Furthermore, applications might have specific "relationships"
that might be disturbed when one is stopped (location service for
Up to date, Greenify has been constantly updated, to include handy features even for non-rooted device (although the functionality is limited compared to using it on rooted device and even much better when integrated with the Xposed module)
Most of the basic features of Greenify work out of the box on
non-root devices, still some useful additional features require a
one-time privilege escalation procedure different than normal
permissions, which is enforced by Android system, using adb
For that see: How to grant permissions required by some features on non-root device?
Note: Some users have observed some certain functions are still limited despite granting permission through adb (may possibly be a bug in experimental releases)