当您按下“主页”按钮时,您的活动将转到 onPause()。
所以我个人建议你重写onPause() 方法,它不仅可以处理按下的“home”按钮,还可以处理其他情况。
在您的情况下,它仅与 onPause() 和 onResume() 相关,因此您可以尝试将状态放入 SharedPreferences 或内部/外部存储。
说:
在您的 onPause() 方法中,执行以下操作:
// Use Shared Preferences to save data
SharedPreferences previewSizePref = getSharedPreferences("PREF",MODE_PRIVATE);
SharedPreferences.Editor prefEditor = previewSizePref.edit();
prefEditor.putInt("x", somethingA);
prefEditor.putInt("y", somethingB);
prefEditor.commit();
并在您的 onResume() 中检索保存的数据,例如:
SharedPreferences previewSizePref = getSharedPreferences("PREF",MODE_PRIVATE);
if (previewSizePref.contains("x") && previewSizePref.contains("y")) {
//your saved data exists, do something
} else {
// handle the circumstances that the saved data doesn't exist
}
要在onPause() 中保存状态并在onResume() 中恢复,您可以看看这个答案:
Saving Activity State in the onPause
对于 SharedPreferences,您可以查看 API 文档:Data Storage - Shared Preferences