本次的需求是从第一个Java文件Activity1跳转到第二个文件Activity2(用Intent实现)后,将Activity1中的Handler延时停止。
需求看似简单,可我在网上找代码时只找到
mHandler.removeCallbacksAndMessages(null);
纳尼?这条语句放哪啊
然后又去找答案,看到有一个大神说要在Activity中重写onDestroy()方法,把上面的语句加进去
我重写了onDestroy(),依然没有停止Handler
会不会Activity跳转的时候不调用onDestroy()呢?找了找Activity的方法详解,当跳转时,先调用Activity1的onPause()方法,只要重写onPause()方法就可以了
@Override
protected void onPause() {
mHandler.removeCallbacksAndMessages(null);
System.out.println("1暂停了。。。");//这句是我测试跳转时是否使用onPause(),可不加
super.onPause();
}
这是个很简单的问题,可它提醒我就算别人把代码递到嘴边也要带着脑子,想想这到底适不适合我的需求
参考文档
Android Activity详解