我正在测试正在开发的Android应用程序。
它包含一个MainActivity
我通过测试注意到每次按下后退按钮时都会调用onDestroy。
我认为这很奇怪。所以我使用android studio创建了一个新的空活动应用程序,并且没有添加任何代码。只是一个简单的问候世界。
即使在这个hello world应用程序中,每次按下时都会调用onDestroy。
我正在运行三星S4,我没有理由相信它资源匮乏。这是怎么回事?
我尝试将android:launchMode设置为AndroidManifest.xml中的所有可用值,但这些都不起作用....
答案 0 :(得分:0)
每当你按下按钮时活动就会被破坏,即android默认行为。这是代码流动的方式。 覆盖Activity
中的onBackPressed /**
* called when user press back button on device
*/
@Override
public void onBackPressed() {
super.onBackPressed();
}
进入位于FragmentActivity内的onBackPressed,这表明它将首先从活动中弹出所有片段,然后它将完成活动。
/**
* Take care of popping the fragment back stack or finishing the activity
* as appropriate.
*/
public void onBackPressed() {
if (!mFragments.getSupportFragmentManager().popBackStackImmediate()) {
supportFinishAfterTransition();
}
}
答案 1 :(得分:0)
按下后退按钮后调用OnDestroy()是正常和预期的行为。这是Android Activity Lifecycle的标准部分。您可以在此处阅读有关生命周期的信息:https://developer.android.com/guide/components/activities/activity-lifecycle.html
除非你有充分的理由,否则我不建议覆盖jitesh建议的后退按钮行为。用户希望您的应用已关闭"按下后退按钮后(销毁)。
答案 2 :(得分:0)
如果您希望每次点按后退按钮都不调用OnDestroy()
@Override
public void onBackPressed() {
// super.onBackPressed(); // remove this line
}