我有一个简单的 Activity ,其中包含一个 ImageView 和一个简单的菜单项,用于在之前的 Activity 中返回。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case android.R.id.home:
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
我刚刚意识到,如果我在上一个 Activity 中按下后退按钮返回,android 的速度非常快,但是按下上面的菜单项,它会浪费一秒钟。为什么?
最佳答案
返回的默认方式是
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case android.R.id.home:
return super.onOptionsItemSelected(item);
}
}
通过调用finish()
,您可以为销毁安排当前 Activity ,即调用onDestroy()
。这会进行一些清理,从而产生开销,您会因此而遇到一些延迟。因此,如果您真的不必在那里使用 finish()
(例如关闭一些对话框或光标),只需省略它并使用提供的默认解决方案即可。
希望这对您有所帮助!
关于android - 后退按钮比在 onOptionsItemSelected 菜单中调用 finish() 更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48034351/