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に飛び込みました