在应用程序结算更改配置

时间:2013-07-13 00:11:18

标签: android in-app-billing screen-rotation

当我的屏幕旋转时,我失去了与app app结合的连接。这是我的onDestroy方法:

@Override
    protected void onDestroy() {
        super.onDestroy();
        if (isFinishing()) {
            Log.d(tag, "Destroying helper.");
            if (mHelper != null) {
                mHelper.dispose();
                mHelper = null;
            }
        }
        Toast.makeText(this, "onDestroy " + mHelper, Toast.LENGTH_SHORT).show();
    }

这表明当屏幕方向因活动未完成而改变时mHelper仍然不为空,然后在我的onCreate方法中,mHelper为空。

如何阻止屏幕旋转呢?

1 个答案:

答案 0 :(得分:1)

默认情况下,方向更改将导致系统销毁并重新创建您的Activity,要更改此行为,请更改AndroidManifest.xml中的Activity条目:

<activity android:name=".MyActivity"
          android:configChanges="orientation"
          android:label="@string/app_name">

告诉Android您希望处理配置自行更改,因此在发生方向更改时不会重新启动Activity,但会调用当前的Activity实例的onConfigurationChanged()方法。

单身人士的一个例子:

public class SingletonObjectDemo {

    private static SingletonObject singletonObject;
    // Note that the constructor is private
    private SingletonObjectDemo() {
        // Optional Code
    }
    public static SingletonObjectDemo getSingletonObject() {
        if (singletonObject == null) {
            singletonObject = new SingletonObjectDemo();
        }
        return singletonObject;
    }
}

您可以查看有关如何处理方位更改的更多信息here