我有一个Activity,里面开了一个从socket处获取整数的线程,然后我在onDestory里面把这个线程停掉了;我还有一个Activity,同样也有一个从socket处获取消息的线程,是字符串,onDestory方法中我也写了停掉线程的操作;
但是现在如果我先打开第一个activity,后退,打开第二个activity,后退,打开第一个Activity,再后退,然后再打开第二个Activity时,就会出现第一个Activity收到了第二个Activity的消息的情况。我觉得这是不是因为我没有把线程停下来? 真心求教~
------解决方案--------------------
按下返回键不一定会调用onDestory。因为Android开源,各个手机厂商定制Rom的时候,会对其的一些机制做一些修改。
------解决方案--------------------
后退的事件本身都可以捕获到的,你还有啥不能做呢,对吧

/**
* 监听退出
*/
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
if (event.getAction() == KeyEvent.ACTION_DOWN && event.getRepeatCount() == 0) {
//退出处理的代码
}
return true;
}
return super.dispatchKeyEvent(event);
}