Links on Android Authority may earn us a commission. Learn more.
Force stop and clear cache: Here's what you need to know
If you have a problem with an app on your Android smartphone, you may have read that you should do a “Force Stop” and then “Clear Cache” to fix it. And actually, that might very well be exactly what you need to do. But why does that help? What does “Force stop” do and what is a cache? Let me explain.
How to find Force Stop and Clear Cache
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. The exact aesthetics will depend on the Android version and the OEM skin, but you can look at an example in the first screenshot below.
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 using Force Stop in the Application Manager.
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!
The reason why using Force Stop is recommended when trying to fix a misbehaving app it 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.
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.
Another example would be if the app needs to process a file, maybe perform some decoding or decryption on some data. Rather than performing this decoding or decryption every time the app launches, which would 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 is able to 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.
What are your experiences with Force Stop and Clear Cache? Are there any apps that you find use a lot of storage space for cached files? Please let me know in the comments below.