如何防止更改后轮换jquerymobile重新加载

时间:2011-05-31 16:31:31

标签: android cordova

我使用jquerymobile和Phonegap开发了一个简单的Android应用程序。 问题是,在更改轮换后,应用程序完全重新加载。 有可能阻止这种重装吗?

非常感谢任何建议。

5 个答案:

答案 0 :(得分:4)

这取决于您是想要保持纵向模式,还是想要切换方向,而是重新加载。

如果您希望保持纵向模式而不考虑设备的方向,请查看(例如)How do I disable orientation change on Android?

如果您想更改方向,那么您无法摆脱以新方向重新启动活动的事实。这就是Android的工作原理。

您可以做的是在活动被杀死之前缓存应用程序所需的数据,然后在新方向重新启动活动后立即重新加载缓存的数据,从而显着加快流程。为此,您需要onRetainNonConfigurationInstance(),而本文 - http://developer.android.com/resources/articles/faster-screen-orientation-change.html - 解释了如何执行此操作。

答案 1 :(得分:2)

添加此

android:configChanges="keyboardHidden|orientation"

进入清单的活动节点。

答案 2 :(得分:1)

所以这是一个手机差距问题,在搜索了一下之后:

添加

android:configChanges="orientation|keyboardHidden"  

从DroidGap继承的Activity标记(AndroidManifest.xml)的参数。

方向仍然有效,但网页不会刷新。

答案 3 :(得分:0)

请覆盖这两种方法以防止您的网页(活动)重新加载,并在Manifest.xml文件的Web视图活动中编写此行代码android:configChanges="orientation|screenSize"

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
    //Save the state of Webview
    mWebView.saveState(savedInstanceState);
    super.onSaveInstanceState(savedInstanceState);
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    // Restore the state of webview
    mWebView.restoreState(savedInstanceState);
}

其中mWebView是您的webview对象。

答案 4 :(得分:0)

将此代码放在AndroidManifest.xml中有助于:

android:configChanges="keyboardHidden|orientation|screenSize"

归功于这篇文章:

https://github.com/phonegap/build/issues/159