在Android开发中,onBackPressed()
方法通常用于处理物理返回按钮的点击事件。从Android的较新版本(特别是Android 12及以上),Google推荐使用Activity.onBackPressedDispatcher
来替代直接的onBackPressed()
调用,因为这种方式提供了更好的灵活性和控制性。
使用onBackPressedDispatcher
从Android 12开始,你可以通过Activity.onBackPressedDispatcher
来添加一个回调,这样可以在需要时调用它来处理返回键的逻辑。
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.OnBackPressedCallback;
import androidx.core.app.OnBackPressedDispatcher;
public class MyActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
// 获取OnBackPressedDispatcher实例
OnBackPressedDispatcher dispatcher = getOnBackPressedDispatcher();
// 创建一个OnBackPressedCallback对象
OnBackPressedCallback callback = new OnBackPressedCallback(true /* enabled by default */) {
@Override
public void handleOnBackPressed() {
// 在这里实现返回按钮的逻辑
finish(); // 例如,关闭当前Activity
}
};
// 将回调添加到dispatcher中
dispatcher.addCallback(this, callback);
}
}