ハンドラのメモリリーク

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void nextPage(View view) {

        Intent intent=new Intent(this,SecondActivity.class);
        startActivity(intent);

    }
}

public class SecondActivity extends AppCompatActivity {


    /***
     *  内存泄露:
     *   Handler中有SecondActivity
     *   Message 中有 Handler
     *   MessageQueue中有 Message
     *   MessageQueue一直都在
     *   Looper从MessageQueue中取出消息
     *   Message处理好了以后,把Message清空,放入MessageQueue中
     *
     */
    Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);

            switch (msg.what) {
                case  1:
                    Intent intent=new Intent(SecondActivity.this,ThreeActivity.class);
                    startActivity(intent);
                    break;
            }

        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
    }

    public void sendHander(View view) {

        Message message=Message.obtain();
        message.what=1;
        handler.sendMessageDelayed(message,5000);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();

// 移除未处理的消息
      //  handler.removeMessages(1);
// 移除所有未处理的消息
        handler.removeCallbacksAndMessages(null);
    }
}

public class ThreeActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_three);
    }
}

問題:startActivityでMainActivityをクリックして3SはThreeActivityを入力した後SecondActivityは、SecondActivityで、startActivityをクリックして跳んだが、リターンMainActivityでSecondActivityの背面にこの時間をクリックして、理論的にSecondActivityが破壊されているが、実際はそうではありません、または戻りMainActivity後ThreeActivityに飛び込みました

公開された141元の記事 ウォン称賛51 ビュー90000 +

おすすめ

転載: blog.csdn.net/dreams_deng/article/details/87905508