根据Activity的生命周期,当启动一个新的Activity时,原有的Activity如果没有调用finish()方法,会通过onPause()方法压入堆栈,新的Activity结束时,该旧Activity会通过onResume()方法直接响应到最前端。
有时会有这样的需求,新Activity启动时,并不希望彻底结束旧的Activity,而是当新的Activity结束时,希望连同旧的Activity一同结束。这就涉及到随时关闭一个Activity的问题范畴了。刚刚实验了网友提供的方法,效果不错。
首先需要在希望延迟关闭的Activity中定义一个全局对象instance,示例如下:
public class MyActivity extends Activity { <span style="white-space:pre"> </span>publicstatic StepStart instance = null; <span style="white-space:pre"> </span>@Override <span style="white-space:pre"> </span>public void onCreate(Bundle savedInstanceState) { <span style="white-space:pre"> </span>instance= this; <span style="white-space:pre"> </span>} }
当希望彻底关闭MyActivity时,按照如下方式调用finish()方法即可。
MyActivity.instance.finish();
原文地址:http://blog.csdn.net/vvcumt/article/details/39675163