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);
}
}
出现问题:在MainActivity中点击startActivity跳入SecondActivity,在SecondActivity中,点击startActivity 3S以后进入ThreeActivity,但是此时在SecondActivity中点击back返回MainActivity,理论上SecondActivity已经被销毁,但是实际不是这样, 返回MainActivity以后还是跳入ThreeActivity