在onStop()中调用finish()

时间:2014-01-03 13:14:20

标签: android android-activity activity-lifecycle

finish() 方法中调用 onStop() 方法后会发生什么?

是否会导致 anr :表示调用

  

的onPause() - >的onStop() - >光洁度() - >的onPause()......

完成活动:表示直接调用

  

的onDestroy()

实际上,当我的活动完全 时,我想 完成 我的活动。

编辑:

  

看到这个场景,我发布了一个布局高度为的活动B.   width小于活动A,因此活动A部分可见   当我按下主页按钮时,活动A完全变为   无形。此时我想关闭活动A,所以它不会   打电话给onRestart()。

提前致谢。

3 个答案:

答案 0 :(得分:2)

完成活动并调用onDestroy()。如果您想在隐身时完成活动,则应在finish()中致电onStop()

答案 1 :(得分:0)

在你的情况下,最好的方式是调用finish();

由于

答案 2 :(得分:0)

根据您的方案,在MainActivity中维护一个标志,表明其他Activity是否已启动?并确保自己完成MainActivity或不基于该标志......

这可能对你有帮助......

public class MyActivity extends Activity {
    private boolean isSecondActivityLaunched;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    protected void onResume() {
        super.onResume();
        isSecondActivityLaunched = false;
    }

    public void onClick(View view) {
        Intent intent = new Intent(this, SecondActivity.class);
        startActivity(intent);
        isSecondActivityLaunched = true;
    }

    @Override
    protected void onStop() {
        super.onStop();
        if(!isSecondActivityLaunched) {
            finish();
        }
    }
}