您的位置:首页 > 移动开发

项目中遇到的问题:去重以及webview关闭后有声音办法

2016-11-23 21:42 316 查看
 1.使用webview浏览有声音或者视频的网页,关闭后视频跟声音不停止的解决办法
(此处为转载http://blog.csdn.net/cuizm/article/details/42342505)

此问题绝对是不能够容忍的,于是上网搜索,这一搜索不要紧,原来遇到此问题的网友还不止笔者一人。查了一番之后发现,原来此问题应该归属于Android的bug,不太好修改。对于包含视频的网页,可以下面的方法解决:

[java] view
plain copy

 





protected void onPause() {  

    super.onPause();  

  

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {  

         webView.onPause(); // 暂停网页中正在播放的视频  

    }  

}  

但是此代码对于声音是无能为力。在网上搜索了很长时间,解决办法也很多,如:

[java] view
plain copy

 





web.pauseTimers();    

web.stopLoading();    

web.loadData("<a></a>", "text/html", "utf-8");  

[java] view
plain copy

 





Intent i = new Intent("com.android.music.musicservicecommand");   

i.putExtra("command", "pause");   

mContext.sendBroadcast(i);  

[java] view
plain copy

 





web.loadData("about:blank");  

以上方法,经过笔者测试,均不好用。

  后来经过多次测试,发现一个规律,就是在finish之前,Activity被重新载的页面地址是啥,下次打开之后,还显示什么页面(因为笔者使用:web.loadData("about:blank");方法测试时,发现下次打开时,显示的是空白页面,开始以为是页面没有加载成功,后来无意中灵机一动,会不会是关闭之前加载的页面,下次打开时还是加载哪个呢?)。后来测试了一下,关闭之前加载了一下百度页面,发现下次打开时,还真是显示的百度百度页面。那就将错就错,直接重新加载当前页面地址,不就ok了吗。一试,还真可以。声音或者视频停止了,下次打开,页面也能够正常加载了。真是
cc68
得来全不废功夫。

解决办法如下:

[java] view
plain copy

 





@Override  

protected void onPause ()  

{  

    m_WebView.reload ();  

  

    super.onPause ();  

}  

m_WebView为Activity中的WebView控件。

2.去除list集合中重复对象

//set去重(缩减为一行)
 

public
static
void main(String[] args){  

List<String>
list
= new
ArrayList<String>();  

List
newList = new
ArrayList(new
HashSet(list));
 

System.out.println(
"去重后的集合: "
+ newList);  

}

使用hashSet去重得到的是无序的集合

List<Item> list = new ArrayList<Item>();

list.addAll(items);

for(int i=0;i<list.size();i++){

Item item = list.get(i);

for(int
j=i+1;j<list.size();j++){

if(item.getCity().equals(list.get(j).getCity()){

//删除相同对象

list.remove(item);

}

}

}

循环之后得到的list为去除了重复对象的有序集合
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: