我有一个Activity
,ViewPager
包含WebView
,Text
和Video
。当我播放视频并按回来时,音频仍在播放。然后我做了
@Override
public void onPause() {
super.onPause();
if(webView != null) {
webView.onPause();
}
}
@Override
public void onResume() {
super.onResume();
if (webView != null) {
webView.onResume();
}
}
但是,当ViewPager
新url
中的WebView
正在加载WebView
时,我仍然会向前一个@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (webView != null) {
if (isVisibleToUser) {
webView.reload();
} else {
webView.onPause();
}
}
}
播放音频。有谁知道这个问题的解决方案?
编辑:
$ curl -L 'http://download.microsoft.com/download/0/2/A/02AAE597-3865-456C-AE7F-613F99F850A8/sqljdbc_4.0.2206.100_enu.tar.gz' | tar xz
$ sudo cp sqljdbc_4.0/enu/sqljdbc4.jar /var/lib/sqoop/
答案 0 :(得分:4)
片段的onPause()没有被调用,因为片段在视图分页器中没有被破坏/暂停(除非它超出屏幕外限制)。所以你必须检查片段是否可见。
您可以通过以下方式实现:
public class MyFragment extends Fragment {
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
//visible to user }
else {
//not visible
}
}
}
然后使用您的网络视图执行您想要的任何操作。
答案 1 :(得分:1)
你必须尝试
webView.destroy();
方法可能有效。
答案 2 :(得分:0)
将onPageChangeListener添加到viewpager。
/* in onViewCreated */
ViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
//here get the webview of the previous page and do on pause.
if (webview of prev page position is active)
webview of perv position.onPause();
//resume the webView if it was previously paused
if (webView was previously paused )
webView of position.onResume();
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
您必须填写算法。 希望这有帮助