編輯:關於Android編程
筆者最近使用Eclipse開發Android移動應用app,其實有一個功能是使用Android系統自帶的WebView控件加載Web頁面。開發很順利,浏覽也很正常。不過有個比較特殊的一點就是加載的Web頁面中有聲音或者視頻。在包括WebView的Activity被Finish之後。聲音或者視頻仍然在後台播放,聲音也不停止。再一次打開Activity之後,會重復的播放聲音或者視頻。
此問題絕對是不能夠容忍的,於是上網搜索,這一搜索不要緊,原來遇到此問題的網友還不止筆者一人。查了一番之後發現,原來此問題應該歸屬於Android的bug,不太好修改。對於包含視頻的網頁,可以下面的方法解決:
protected void onPause() {
super.onPause();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
webView.onPause(); // 暫停網頁中正在播放的視頻
}
}web.pauseTimers();
web.stopLoading();
web.loadData("", "text/html", "utf-8");Intent i = new Intent("com.android.music.musicservicecommand");
i.putExtra("command", "pause");
mContext.sendBroadcast(i);web.loadData("about:blank");以上方法,經過筆者測試,均不好用。
後來經過多次測試,發現一個規律,就是在finish之前,Activity被重新載的頁面地址是啥,下次打開之後,還顯示什麼頁面(因為筆者使用:web.loadData("about:blank");方法測試時,發現下次打開時,顯示的是空白頁面,開始以為是頁面沒有加載成功,後來無意中靈機一動,會不會是關閉之前加載的頁面,下次打開時還是加載哪個呢?)。後來測試了一下,關閉之前加載了一下百度頁面,發現下次打開時,還真是顯示的百度百度頁面。那就將錯就錯,直接重新加載當前頁面地址,不就ok了嗎。一試,還真可以。聲音或者視頻停止了,下次打開,頁面也能夠正常加載了。真是得來全不廢功夫。
解決辦法如下:
@Override
protected void onPause ()
{
m_WebView.reload ();
super.onPause ();
}
Android網絡編程(三)Volley用法全解析
相關文章Android網絡編程(一)HTTP協議原理Android網絡編程(二)HttpClient與HttpURLConnection前言Volley想必很多人都用過,
Android--獲取SharedtPreference實例
現在我目前知道可以獲取SharedPreferences實例的常用方法有三個: 1.通過Context的getSharedPreferences(String name,
三星S4(i9500)怎麼刷魅族Flyme ROM
魅族FlymeOS for 三星i9500在經過數輪內測後終於發布,目前僅支持三星i9500。使用刷機精靈可以一鍵刷入,建議使用。Flyme OS
android使用 ScrollerView 實現 可上下滾動的分類欄實例
如果不考慮更深層的性能問題,我個人認為ScrollerView還是很好用的。而且單用ScrollerView就可以實現分類型的RecyclerView或ListView所