项目中遇到的问题:去重以及webview关闭后有声音办法
2016-11-23 21:42
316 查看
1.使用webview浏览有声音或者视频的网页,关闭后视频跟声音不停止的解决办法
(此处为转载http://blog.csdn.net/cuizm/article/details/42342505)
此问题绝对是不能够容忍的,于是上网搜索,这一搜索不要紧,原来遇到此问题的网友还不止笔者一人。查了一番之后发现,原来此问题应该归属于Android的bug,不太好修改。对于包含视频的网页,可以下面的方法解决:
[java] view
plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
protected void onPause() {
super.onPause();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
webView.onPause(); // 暂停网页中正在播放的视频
}
}
但是此代码对于声音是无能为力。在网上搜索了很长时间,解决办法也很多,如:
[java] view
plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
web.pauseTimers();
web.stopLoading();
web.loadData("<a></a>", "text/html", "utf-8");
[java] view
plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
Intent i = new Intent("com.android.music.musicservicecommand");
i.putExtra("command", "pause");
mContext.sendBroadcast(i);
[java] view
plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
web.loadData("about:blank");
以上方法,经过笔者测试,均不好用。
后来经过多次测试,发现一个规律,就是在finish之前,Activity被重新载的页面地址是啥,下次打开之后,还显示什么页面(因为笔者使用:web.loadData("about:blank");方法测试时,发现下次打开时,显示的是空白页面,开始以为是页面没有加载成功,后来无意中灵机一动,会不会是关闭之前加载的页面,下次打开时还是加载哪个呢?)。后来测试了一下,关闭之前加载了一下百度页面,发现下次打开时,还真是显示的百度百度页面。那就将错就错,直接重新加载当前页面地址,不就ok了吗。一试,还真可以。声音或者视频停止了,下次打开,页面也能够正常加载了。真是
cc68
得来全不废功夫。
解决办法如下:
[java] view
plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
@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为去除了重复对象的有序集合
(此处为转载http://blog.csdn.net/cuizm/article/details/42342505)
此问题绝对是不能够容忍的,于是上网搜索,这一搜索不要紧,原来遇到此问题的网友还不止笔者一人。查了一番之后发现,原来此问题应该归属于Android的bug,不太好修改。对于包含视频的网页,可以下面的方法解决:
[java] view
plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
protected void onPause() {
super.onPause();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
webView.onPause(); // 暂停网页中正在播放的视频
}
}
但是此代码对于声音是无能为力。在网上搜索了很长时间,解决办法也很多,如:
[java] view
plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
web.pauseTimers();
web.stopLoading();
web.loadData("<a></a>", "text/html", "utf-8");
[java] view
plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
Intent i = new Intent("com.android.music.musicservicecommand");
i.putExtra("command", "pause");
mContext.sendBroadcast(i);
[java] view
plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
web.loadData("about:blank");
以上方法,经过笔者测试,均不好用。
后来经过多次测试,发现一个规律,就是在finish之前,Activity被重新载的页面地址是啥,下次打开之后,还显示什么页面(因为笔者使用:web.loadData("about:blank");方法测试时,发现下次打开时,显示的是空白页面,开始以为是页面没有加载成功,后来无意中灵机一动,会不会是关闭之前加载的页面,下次打开时还是加载哪个呢?)。后来测试了一下,关闭之前加载了一下百度页面,发现下次打开时,还真是显示的百度百度页面。那就将错就错,直接重新加载当前页面地址,不就ok了吗。一试,还真可以。声音或者视频停止了,下次打开,页面也能够正常加载了。真是
cc68
得来全不废功夫。
解决办法如下:
[java] view
plain copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
@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为去除了重复对象的有序集合
相关文章推荐
- Android使用WebView浏览有声音或者视频的网页,关闭WebView之后,声音或者视频不停止的解决办法
- urlscheme白名单问题以及项目适配iOS9遇到的一些问题及解决办法
- 练习webpack遇到的一些问题以及解决办法,供自己以后参考
- WKWebView使用遇到的问题与解决办法
- 关于项目中WebView遇到的问题记录
- webview播放视频关闭声音问题
- SpringBoot web demo项目启动后立马自动关闭问题解决办法
- Android SwipeRefreshLayout结合WebView使用实现以及可能遇到的问题
- 推送本地项目至Github遇到的问题以及解决办法记录
- 关于今天做项目时遇到的问题 以及解决办法
- 在使用webView播放flash或视频文件时无法关闭声音的问题
- struts2开发javaWeb 项目时遇到jar包冲突问题的解决办法
- Android 使用webview遇到的问题及解决办法
- 让Vue-cli生成vue+webpack的项目为vue1.0版本以及端口占用问题解决办法
- Android使用WebView加载有声音或视频的网页时,关闭webView时,声音没有关闭的问题
- VS2005创建Web项目时遇到的问题及解决办法
- 项目中遇到的webview的相关问题
- 遇到的web项目问题整理,java web 工程 默认index.jsp是欢迎页以及不加载jar的问题
- iOS开发之WKWebView的使用以及遇到的问题
- Maven构建部署项目遇到的各种问题以及解决办法