Android处理程序执行

Android处理程序执行,android,handler,execution,Android,Handler,Execution,首先,请参阅下面的代码 public class SampleActivity extends Activity { private final Handler mLeakyHandler = new Handler() { @Override public void handleMessage(Message msg) { // AAAA } } @Override protected

首先,请参阅下面的代码

public class SampleActivity extends Activity {

    private final Handler mLeakyHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            // AAAA
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Super. onCreate (savedInstanceState);

        // Post a message and delay its execution for 10 minutes.
        mLeakyHandler.postDelayed(new Runnable() {
            @Override
            public void run() {
                // BBBB
            }
        }, 60 * 10 * 1000);

        // Go back to the previous Activity.
        finish();
    }
}
忽略这一事实,我知道这会导致内存泄漏。 我的问题是:

AAAA和BBBB会一起执行吗?如果没有,将首先执行哪个? 根据代码,消息不是从onCreate发送的,所以AAAA是否会收到一条空消息? 当我运行代码时,AAAA似乎没有被执行。只执行BBBB。为什么会这样? 提前谢谢

AAAA和BBBB会一起执行吗

只有AAAA将被执行,当您发布一个Runnable时,您希望处理程序在Runnable中执行代码。要执行BBBB,必须使用sendMessage方法之一向处理程序发送消息。有关详细信息,请参阅

根据代码,消息不是从onCreate发送的,所以AAAA是否会收到一条空消息

否。如上所述,handleMessage不被调用

当我运行代码时,AAAA似乎没有被执行。只执行BBBB。为什么会这样

同样,第一个答案解释了原因