Understanding Android AsyncTask (Executing Background Tasks)

The AsyncTask Android class lets us sort of bind background tasks to the UI thread. So using this class, you can perform background operations and then publish the results to the UI thread that updates the UI components. This way you won’t have to deal with threads, handlers, runnables, etc. directly yourself. It’s sort of a helper class around Thread and Handler.

Continue reading “Understanding Android AsyncTask (Executing Background Tasks)”

Understanding Android/Java Processes and Threads Related Concepts (Handlers, Runnables, Loopers, MessageQueue, HandlerThread)

In this article we’ll try to briefly go through the various sort of low level concepts in Android that are really important to understand IMHO. Once you have a good grasp on these, a lot of things that are actually built atop these concepts become much easier to understand and code. We’ll go through processes, threads, loopers, message queues, messages, handlers, runnables, etc. I’ll also point to various external resources that you should definitely go through for a much better understanding.

Continue reading “Understanding Android/Java Processes and Threads Related Concepts (Handlers, Runnables, Loopers, MessageQueue, HandlerThread)”

Asynchronous Background Execution and Data Loading with Loaders (Framework) in Android

Android has this Loader framework that offers a powerful (yet simple) way to asynchronously load data from content providers or other data sources like an SQLite database, network operation, et al. in an Activity or a Fragment (clients).

Continue reading “Asynchronous Background Execution and Data Loading with Loaders (Framework) in Android”

Understanding Android Pending Intents

PendingIntent is basically an object that wraps another Intent object. Then it can be passed to a foreign application where you’re granting that app the right to perform the operation, i.e., execute the intent as if it were executed from your own app’s process (same permission and identity). For security reasons you should always pass explicit intents to a PendingIntent rather than being implicit.

Continue reading “Understanding Android Pending Intents”

Android ListView (Scrolling ViewGroup) Hide/Disable Scrollbars

In Android, if you’ve ever wanted to sort of disable the scrollbars of a scrolling ViewGroup like a ListView, GridView, ScrollView, etc. then there are a few tricks to do that. I’ve tried to compile a set of such tricks to disable (or just hide) scrollbars for such scrolling View Groups.

Continue reading “Android ListView (Scrolling ViewGroup) Hide/Disable Scrollbars”

Android Interprocess Communication (IPC) with Messenger (Remote Bound Services)

Interprocess Communication is the communication of threads across process boundaries. This type of communication is supported through the binder framework in Android. In the article on Services earlier, we discussed Bound Services that has a client-server interface. A bound service is the server which allows clients (components such as activities) to bind to the Service and then send requests and receive responses. The code we discussed works across threads in the same process but will fail in the case of remote services where the Service is running in a different process altogether.

Continue reading “Android Interprocess Communication (IPC) with Messenger (Remote Bound Services)”

Android Scroll to Top of ScrollView with ListView and Other Child Views (Initial Jump Issue)

In my Android app, I was working in an Activity where I had a ScrollView containing a LinearLayout (could be a RelativeLayout too though) that had a few Views at the top followed by a ListView in the end that was long enough to move out of the bottom edge and add scrollbars to itself. Since I’d set a height to the ListView the ScrollView gained it’s vertical scrollbars.

Continue reading “Android Scroll to Top of ScrollView with ListView and Other Child Views (Initial Jump Issue)”