后退按钮比在onOptionsItemSelected菜单中调用finish()更快

问题描述 投票:1回答:1

我有一个简单的活动,有一个图像视图和一个简单的menuItem,用于在previus活动中返回。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()){
        case android.R.id.home:
            finish();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

我刚刚意识到,如果我按下后退按钮返回上一个活动,android会很快完成,但是按下上面的菜单项会浪费一秒钟。为什么?

android performance
1个回答
1
投票

返回的默认方式是

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()){
        case android.R.id.home:
            return super.onOptionsItemSelected(item);
    }
}

通过调用finish(),您可以安排当前的销毁活动,即调用onDestroy()。这会进行一些清理,从而产生开销,并且您会遇到一些延迟。所以,如果你真的不必在那里使用finish()(例如关闭一些对话框或游标),只需省略它并使用提供的默认解决方案。

希望这可以帮助!

© www.soinside.com 2019 - 2024. All rights reserved.