Affiliate links on Android Authority may earn us a commission. Learn more.
Force stop and clear cache on Android: Is it really necessary?
If you have a problem with an app on your Android smartphone, you may have read that you should head into Settings and do a “Force Stop” and then “Clear Cache” to fix it. Often, that may very well be exactly what you need to do. But why does that help and what should you do if it doesn’t do anything? What exactly does “Force stop” do on Android and what is a cache? Let me explain.
QUICK ANSWER
In most cases, Force Stop and Clear Cache are not necessary. Still, they are two of the most important steps when trying to fix a wayward app. The Force Stop and Clear Cache buttons are located in the App Info section of the Settings app. Another way to access this section is to long press the icon in your app drawer and then press the App Info icon. Keep reading for detailed instructions
JUMP TO KEY SECTIONS
How to find Force Stop and Clear Cache on Android
Before we look at what Force Stop and Clear Cache do, and why you would want to use them, we need to know how to locate them in Android. Force Stop and Clear Cache are two actions that you can find in the info section of an app. To access the info section, long press on the app icon and then press the i icon (pictured below). The exact aesthetics will depend on the Android version and the OEM skin.
What does force stopping an app do?
Let’s back up a bit first. The Linux kernel is at the heart of Android. It is the component responsible for managing memory and processes, along with a whole bunch of other resources. Whenever you start an app you are actually starting a Linux process.
A process is a logical container for a program (app). It is started by the kernel and is used as a way to share the system resources (including memory and CPU time) among all the running apps. Each process has an ID, known as the PID (Process ID), a priority, its own address space, and some state information (running, sleeping, stopped, and zombied).
The kernel’s job is to schedule CPU time and allocate memory to the process so that it can run. The way it works is that the kernel gives slices of CPU time to each of the running processes. If a process is sleeping (because it is waiting for something like data from the network) then it doesn’t get any CPU time. This juggling of processes goes on at the millisecond level, very fast, and just like the frames of a cartoon, you get the appearance of smoothness and multiple programs running at once.
When an app exits, the kernel will clean up all the resources used by the app (like open files, allocated memory etc) and eventually delete the process that was created for that app.
Each app can be in one of several different states: running, paused, or stopped. These are different from the process states, as defined by Linux, and represent the “Activity Lifecycle” as defined by Android. Google puts it like this, “as a user navigates through, out of, and back to your app, the Activity instances in your app transition through different states in their lifecycle.”
The interesting thing about Android is that it never kills an app directly. Instead, it kills the process in which the activity runs, destroying not only the activity but everything else running in the process, as well. It might do this when it needs to free up RAM or a user can kill a process by tapping Force Stop in the Application Manager.
Force stopping will clear any RAM reserved for the Android app.
When everything is working smoothly, an app will transition from one activity state to another and will either eventually be killed off by Android (after moving to the stopped state) or it will just hang around in the background until the user brings it to the foreground again. However, if things start to go wrong the app can misbehave. It might stop responding to certain events, it might get stuck in some kind of loop or it might just start doing unpredictable things.
In such cases, the app might need to be killed off and then restarted. That is what Force Stop is for, it basically kills off the Linux process for the app and cleans up the mess! For example, if a popular app like Disney Plus isn’t working, then using Force Stop is one of the first steps in trying to fix it.
The reason why using Force Stop is recommended when trying to fix a misbehaving app is 1) it kills the currently running instance of that app and 2) it means that the app will no longer be accessing any of its cache files.
When should I clear cache for an app on Android?
After the app has been killed, the next step is to delete the data in the cache directory. When an application needs a temporary file, a pre-processed file, or when it wants to keep a local copy of a file that was downloaded from the Internet then it will get placed in the app’s cache directory. Each app has its own directory where it can put working files.
The idea is as follows. If an app downloads files or data from the Internet then it would be a waste of bandwidth, plus a waste of time to download the very same files every time the app starts. Instead, any files that need downloading from the Internet can be downloaded once and then stored in the cache. From time to time the app can check if those temporary copies are still valid and refresh the cache if needed.
Clearing cache frees up space by clearing up potentially unused temporary files.
Another example would be if the app needs to process a file, like decoding or decrypting some data. Rather than performing this decoding or decryption every time the app launches, which would typically use a lot of CPU cycles, the app can do it once and then store the result in the cache. Again, the app could check the validity of the processed file and refresh the cache if needed.
The reason these are temporary files is that the app should not rely on these files being present as Android can delete them when a device runs low on storage. In these cases, the app just simply downloads the data again, or processes the files again and creates new ones in its cache.
Apps can also store files more permanently by using the app data directory. This is different from the cache directory and is designed for persistent files owned by the app. Since Android can delete files in the cache directory without notifying the app, it is also safe for users to delete those files via the “Clear Cache” button.
This can help fix misbehaving apps as it clears out the pool of temporary files and forces the app to recreate them and so gives the app a kind of fresh start. This can often fix the problem as the error was in the processing of a temporary or cached file.
To find the Clear Cache button, you need to go into App info, and then tap on “Storage” or “Storage & Cache”, depending on the Android version and the OEM skin.
A side benefit of clearing the cache is that it frees up storage space. So if you are running low on internal storage then clearing the cached data for all apps can help.
One more thing, clearing the cache isn’t unique to Android. It is one of the most straightforward all-purpose fixes, along with rebooting! You might want to read our guide on how to clear the cache in any browser on any platform, for example.
What are your experiences with Force Stop and Clear Cache on Android? Are there any apps that you find use a lot of storage space for cached files? Please let me know in the comments below.