其他分享
首页 > 其他分享> > 在this.finish()之后不会调用android – onDestroy()

在this.finish()之后不会调用android – onDestroy()

作者:互联网

我想知道为什么具有2.1-update1的摩托罗拉里程碑与仿真器的行为不同或者例如Nexus One.我试图退出我的应用程序:

@Override
protected void onPause() {
    if(mayDestroyActivity) this.finish();
    super.onPause();
}

这适用于模拟器或Nexus One. onDestroy()在onPause()和onStop之后立即被调用.但不是里程碑.相反,当另一个Activity启动时,会调用onDestroy().它在Manifest中的部分看起来像这样:

<activity android:name=".MyActivity"  
    android:configChanges="orientation|keyboardHidden"  
 android:label="@string/questionnaire_item"
 android:launchMode="singleInstance"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
 android:windowSoftInputMode="adjustPan">
 <intent-filter>
  <category android:name="android.intent.category.OPENABLE" />
 </intent-filter>
</activity>

有人对此有暗示吗?我的应用程序依赖于正确退出,因为我保存了onDestroy()中的所有进度

谢谢,
Steff

解决方法:

如果用户退出主屏幕,则不需要退出应用程序.在大多数情况下,如果应用程序转到后台,它将提供更好的用户体验.尝试依赖saveInstanceState和onPause.

退出应用程序在Android世界中被认为是不好的做法,如果应用程序在按下主屏幕后继续运行,则具有用于真正多点触控的良好系统的手机可以获得更好的用户体验.

标签:android,milestone
来源: https://codeday.me/bug/20190724/1518487.html