How do you handle multithreading and asynchronous operations in Android to ensure the main UI thread remains responsive?