我正在开发Android应用程序一段时间,并且关注了很多关于活动生命周期和应用程序生命周期的帖子.
我知道Activity.finish()方法调用的方法Activity.onDestroy(),并从堆栈中删除活动,我想它以某种方式指向操作系统和垃圾收集器,他可以"做他的把戏"并释放内存,当它发现它是一个很好的时间做所以....
我来到这篇文章 - 退出申请不赞成?并阅读Mark Murphy的回答.
这让我对这个finish()方法究竟是做什么感到困惑.
我有机会打电话finish(),onDestroy()不会打电话吗?
我正在使用的项目使用视图展示器抽象.这是所有主要类的简化版本.
抽象活动(Wire Presenter实例,带View)
public abstract class MvpActivity<Presenter extends MvpPresenter>
extends ActionBarActivity {
protected Presenter mPresenter;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mPresenter = getPresenterInstance();
}
@Override protected void onResume() {
super.onResume();
mPresenter.onResume(this);
}
@Override protected void onPause() {
mPresenter.onPause();
super.onPause();
}
}
Run Code Online (Sandbox Code Playgroud)
视图界面
public interface MyView {
void redirect();
}
Run Code Online (Sandbox Code Playgroud)
视图实现
public class MyActivity
extends MvpActivity<MyPresenter>
implements MyView {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_view);
Button myButton = (Button)findViewById(R.id.my_button);
myButton.setOnClickListener(v -> mPresenter.onButtonPressed());
}
@Override protected MyPresenter getPresenterInstance() …Run Code Online (Sandbox Code Playgroud)