我创建了一个sip 呼叫。当手机屏幕打开时,如果我收到任何来电,一切正常。我的意思是 onStart() 被调用并且onDestroy() 未被调用。所以我可以接听电话。但是当手机屏幕关闭并收到来电时。我看到 onStart() 被调用并且onDestroy() 也被调用。我看到 android 进程自动终止了这个活动。
这个问题不在android 2.3版本中。我在最新版本中看到了这一点。
任何解决方案?我的 onDestroy() 方法不应该被调用。只有当我退出活动时才应该调用它。
我创建了一个sip 呼叫。当手机屏幕打开时,如果我收到任何来电,一切正常。我的意思是 onStart() 被调用并且onDestroy() 未被调用。所以我可以接听电话。但是当手机屏幕关闭并收到来电时。我看到 onStart() 被调用并且onDestroy() 也被调用。我看到 android 进程自动终止了这个活动。
这个问题不在android 2.3版本中。我在最新版本中看到了这一点。
任何解决方案?我的 onDestroy() 方法不应该被调用。只有当我退出活动时才应该调用它。
是的,仅在使用屏幕“横向”时会出现问题,因为屏幕在内部变为“纵向”。
为防止这种onDestroy()
情况发生,请在屏幕打开或关闭时调用。
AndroidManifest.xml
具有"orientation|screenSize"
属性的文件。onConfigurationChanged()
方法AndroidManifest.xml
<activity
…
android:screenOrientation="landscape"
android:configChanges="keyboardHidden|orientation|screenSize">
并添加到您的活动中:
…
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
onDestroy 方法将调用我您的应用程序被强制关闭或.. 应用程序已关闭.. 可能是您的应用程序被实例关闭.. 在 onStop 上,onDestroy 将在您按下返回按钮时调用。onDestroy 不会在你按下主页按钮时调用
您是否在 onCreateEngineOptions() 中将屏幕方向设置为 ScreenOrientation.LANDSCAPE_FIXED 或 ScreenOrientation.LANDSCAPE_SENSOR?
我发现在使用 ScreenOrientation.LANDSCAPE_FIXED 时会调用 onDestroy。但是如果我使用 ScreenOrientation.PORTRAIT_FIXED,关闭屏幕时不会调用 onDestroy。
我仍然不清楚这个问题背后的原因,但我认为这是解决它的线索。
如果您启用了“不保留活动”选项,您可以检查您的开发人员选项(在您最新版本的设备上)。您可以禁用它。这可能是仅在您的最新版本设备上调用 onDestroy() 的原因之一。