我创建了 sip call 。当手机屏幕开启时,如果我收到任何来电,则可以使用。我的意思是调用onStart()并且不调用 onDestroy()。所以我能接听电话。 但是当手机屏幕关闭并收到来电时。我看到onStart()被调用, onDestroy()也被称为。我看到android进程会自动杀死此活动。
这个问题不在android 2.3版本中。我在最新版本中看到了这一点。
任何解决方案?我的onDestroy()方法不应该被调用。只有当我离开活动时才应该打电话。
答案 0 :(得分:3)
是的,仅在使用“横向”屏幕时会出现问题,因为屏幕内部会变为“纵向”。
为防止这种情况发生,请在屏幕开启或关闭时调用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);
}
答案 1 :(得分:0)
如果您已启用“请勿保留活动”选项,则可以检查开发人员选项(在最新版本的设备上)。你可以禁用它。这可能是仅在最新版本设备上调用onDestroy()的一个原因。
答案 2 :(得分:0)
onDestroy方法将调用我的应用程序是强制关闭或..应用程序关闭..可能是您的应用程序被实例关闭..在onStop上,onDestroy将调用你按下后退按钮,。 onDestroy不会打电话给你按主页按钮
答案 3 :(得分:0)
您是否在onCreateEngineOptions()中将屏幕方向设置为ScreenOrientation.LANDSCAPE_FIXED或ScreenOrientation.LANDSCAPE_SENSOR?
我发现在使用ScreenOrientation.LANDSCAPE_FIXED时会调用onDestroy。但是如果我使用ScreenOrientation.PORTRAIT_FIXED,则在关闭屏幕时不会调用onDestroy。
我仍然不清楚这个问题背后的原因,但我认为这是解决问题的线索。