2

我创建了一个sip 呼叫。当手机屏幕打开时,如果我收到任何来电,一切正常。我的意思是 onStart() 被调用并且onDestroy() 未被调用。所以我可以接听电话。但是当手机屏幕关闭并收到来电时。我看到 onStart() 被调用并且onDestroy() 也被调用。我看到 android 进程自动终止了这个活动。

这个问题不在android 2.3版本中。我在最新版本中看到了这一点。

任何解决方案?我的 onDestroy() 方法不应该被调用。只有当我退出活动时才应该调用它。

4

4 回答 4

4

是的,仅在使用屏幕“横向”时会出现问题,因为屏幕在内部变为“纵向”。

为防止这种onDestroy()情况发生,请在屏幕打开或关闭时调用。

  1. 添加到AndroidManifest.xml具有"orientation|screenSize"属性的文件。
  2. 为您的活动添加onConfigurationChanged()方法

AndroidManifest.xml

<activity
   …
   android:screenOrientation="landscape"
   android:configChanges="keyboardHidden|orientation|screenSize">

并添加到您的活动中:

…
@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
}
于 2013-07-15T17:22:29.587 回答
0

onDestroy 方法将调用我您的应用程序被强制关闭或.. 应用程序已关闭.. 可能是您的应用程序被实例关闭.. 在 onStop 上,onDestroy 将在您按下返回按钮时调用。onDestroy 不会在你按下主页按钮时调用

于 2013-05-23T10:28:39.063 回答
0

您是否在 onCreateEngineOptions() 中将屏幕方向设置为 ScreenOrientation.LANDSCAPE_FIXED 或 ScreenOrientation.LANDSCAPE_SENSOR?

我发现在使用 ScreenOrientation.LANDSCAPE_FIXED 时会调用 onDestroy。但是如果我使用 ScreenOrientation.PORTRAIT_FIXED,关闭屏幕时不会调用 onDestroy。

我仍然不清楚这个问题背后的原因,但我认为这是解决它的线索。

于 2013-06-24T15:43:11.240 回答
0

如果您启用了“不保留活动”选项,您可以检查您的开发人员选项(在您最新版本的设备上)。您可以禁用它。这可能是仅在您的最新版本设备上调用 onDestroy() 的原因之一。

于 2013-05-23T10:23:51.683 回答