onDestroy正在呼叫当电话屏幕关闭时

时间:2013-05-23 09:24:25

标签: android android-service

我创建了 sip call 。当手机屏幕开启时,如果我收到任何来电,则可以使用。我的意思是调用onStart()并且不调用 onDestroy()。所以我能接听电话。 但是当手机屏幕关闭并收到来电时。我看到onStart()被调用, onDestroy()也被称为。我看到android进程会自动杀死此活动。

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

任何解决方案?我的onDestroy()方法不应该被调用。只有当我离开活动时才应该打电话。

4 个答案:

答案 0 :(得分:3)

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

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

  1. 使用AndroidManifest.xml属性添加到"orientation|screenSize"文件。
  2. 为您的活动添加onConfigurationChanged()方法
  3. 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。

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

相关问题