android開發過程中遇到的問題小結(不定期更新)


一、按BACK、HOME鍵后activity的生命周期問題

按Back鍵后activity被銷毀,HOME則沒有被銷毀。

activity的生命周期 參看:http://blog.csdn.net/Android_Tutor/article/details/5772285

二、webview捕獲js的alert、confirm、prompt事件

使用WebChromeClient主要輔助WebView處理Javascript的對話框、網站圖標、網站title、加載進度等

WebViewClient與WebChromeClient的區別 參看:http://www.cnblogs.com/Crazy-jacking/archive/2011/11/24/2262425.html

WebChromeClient的使用 參看:http://618119.com/archives/2010/12/20/199.html

三、處理webview顯示網頁白邊問題

解決方法:使用的webview的setScrollBarStyle方法設置滾動條位置的屬性,android:scrollbarStyle 可以是insideOverlay可以是outsideOverlay。

具體示例:

webview.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);  

四、手機橫豎屏切換問題

1、讓手機橫豎屏切換不銷毀當前activity  

解決方法:在Mainifest.xml的Activity元素中加入android:configChanges=”orientation|keyboardHidden”屬性,加入這條屬性的含義是,應用程序將會處理屏幕方向和鍵盤狀態(推出或合上)信息的改動。經過測試,加上這條屬性之后,Activity沒有被銷毀,頁面還在原來的位置。

2、手機橫豎屏切換設置

參看:http://blog.csdn.net/tsk/article/details/6633905

五、webview隱藏地址欄

解決方法:使用WebViewClient顯示網頁內容

webview.setWebViewClient(new WebViewClientDemo());
 private class WebViewClientDemo extends WebViewClient { 
@Override
// 在WebView中而不是默認瀏覽器中顯示頁面
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}

六、webview前進、后退操作

覆寫Activity的onKeyDown方法 或者 webview捕獲按鍵操作

/*
* webview的后退操作
*
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && webViewMain.canGoBack()) {
webViewMain.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
       webview.setOnKeyListener(new View.OnKeyListener() {  
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
if (keyCode == KeyEvent.KEYCODE_BACK && webview.canGoBack()) { //表示按返回鍵時的操作
webview.goBack(); //后退

//webview.goForward();//前進
return true; //已處理
}
}
return false;
}
});

七、WebView處理404、505等問題






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM