我使用jquerymobile和Phonegap开发了一个简单的Android应用程序。 问题是,在更改轮换后,应用程序完全重新加载。 有可能阻止这种重装吗?
非常感谢任何建议。
答案 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"
归功于这篇文章: