Android:响应式用户界面的最佳实践

Nik*_*lin 2 java android messages

我是Android和Java的新手.在我使用C++之前,使用消息调度事件.现在我想为Android平台创建相同的用户体验,我将非常感谢您对将事件绑定到用户控件的最佳方式的任何建议或意见.

这是C++的一个例子:

ON_MESSAGE(WM_RECORD_START, &CMainFrame::OnRecordStart)//Method OnRecordStarts() executes on WM_RECORD_START_MESSAGE
Run Code Online (Sandbox Code Playgroud)

...

LRESULT CMainFrame::OnRecordStart(WPARAM wParam, LPARAM lParam)
{

        m_pNetworkCtrl->SetGeoLocationInfo();
        ...
}
Run Code Online (Sandbox Code Playgroud)

...

void CMainFrame::RecordStart()
{
    PostMessage(WM_RECORD_START);
}
Run Code Online (Sandbox Code Playgroud)

在上面的情况下,该方法RecordStart()被绑定到a Button(在Button按下a时执行)并发布消息WM_RECORD_START.WM_RECORD_START收到消息后,OnRecordStart()执行该方法.

如前所述,我想创建一个响应式用户界面,如果OnRecordStart()直接调用该方法,我不确定它是否足够好RecordStart():

void RecordStart()
{
    OnRecordStart();
}
Run Code Online (Sandbox Code Playgroud)

我非常感谢你的任何建议.

snc*_*tln 6

您可以使用HandlerRunnable发布到消息队列中,从而在Android中模拟MFC样式行为.

这是一个简短的例子

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);
    }
}
Run Code Online (Sandbox Code Playgroud)