Android: Best practice for responsive user interfaces

android, java, message

Solution

You can emulator the MFC style behavior in Android by using a Handler to post a Runnable into the message queue.

Here is a brief example

class MyClass
{
    Handler m_myHandler;
    Runnable m_myRunnable;

    MyClass()
    {
        m_myHandler = new Handler();
        m_myRunnable = new RUnnable()
        {
            public void run()
            {
                // do your stuff here
            }
        };
    }

    public void onclickListener(...)
    {
        // push the runnable into the message queue
        m_myHandler.post(m_myRUnnable);
    }
}

Problem

I am quite new to Android and Java. Before I was working with C++ where the events where dispatched with messages. Now I would like to create the same user experience for Android platform and I would appreciate any of your suggestions or comments on what is the best way to bind events to user controls. Here is an example from C++: ``` ON_MESSAGE(WM_RECORD_START, &CMainFrame::OnRecordStart)//Method OnRecordStarts() executes on WM_RECORD_START_MESSAGE ``` ... ``` LRESULT CMainFrame::OnRecordStart(WPARAM wParam, LPARAM lParam) { m_pNetworkCtrl->SetGeoLocationInfo(); ... } ``` ... ``` void CMainFrame::RecordStart() { PostMessage(WM_RECORD_START); } ``` In the case above the method `RecordStart()` is bound to a `Button` (it is executed when a `Button` is pressed) and posts the message `WM_RECORD_START`. When the message `WM_RECORD_START` is received, the method `OnRecordStart()` is executed. As mentioned before I would like to create a responsive user interface and am not sure if it would be good enough if the method `OnRecordStart()` is called directly from `RecordStart()`: ``` void RecordStart() { OnRecordStart(); } ``` I would really appreciate any of your suggestions.

Original source