Loops are used fairly commonly in Android apps. A common scenario is fetching a list of information from a server, and going through that list to do something useful. Many games also use loops to update grids of game state (for example, a Minesweeper game might go through every row and every column to check if the player has won).
It is important to be careful about why we are using loops, however. It is possible to misuse loops to write poorly performing apps.
For one, having long running loops is not a good idea. For example, if you had a loop to go through an enormous amount of data, it would take many iterations to finish. During those iterations, many other processes can be brought to a standstill, because of the shared processing power. A large amount of memory can also be occupied by loops processing large amounts of data, which can crash your app. Importantly, both processing power, memory, and battery life are limited on mobile devices. Long running loops can actually cause your phone to heat up. This is generally not dangerous, as the operating system will kill the app before it can do much damage, but it is a symptom of how much power is being consumed. Apps that drain battery rapidly are poor apps.
So what are the alternatives? It depends on what you wanted to achieve using the loops.
If you are using a loop to perform complex graphics, you should probably be looking into using some sort of graphics library. This could be a game engine, or some other library that is designed for your purpose. They are optimized for graphics calculations, and provide many functions that will be far more efficient than the ones you might write.
If you are processing large pieces of information, you might want to consider offloading this to a server. We will not be learning backend programming in this course. But briefly: a server can be programmed the same way an app can, and is responsible for sending information to the app. Servers typically have much greater processing capacity and memory available to them. For example, don't fetch a million temperature readings from the server and finding the average using a loop. Instead, program the server to return an average reading when given a particular range of dates. This moves the large loop from the phone (limited processor, battery) to the server (large processor, connected to the power grid).
If you are using a loop to wait for something, this is not a good idea. For example, if you wanted to do something 10 seconds from now, one way to do it is to check the current time, and let a while loop run until the time is now+10. This is a bad idea for many of the reasons explained above. The loop will run (literally) billions of times, achieving nothing useful while using up processing power. A better way to do this is to use built in libraries that can set an alert at a fixed interval, or point in the future. These libraries are written without using these inefficient loops. As an example, have a look at part 2 of this answer: http://stackoverflow.com/a/4598737. We have not yet learned some of the concepts in that answer, but have a look to see how it is achieved.