0
Im using webview, который загружает веб-страницу, а затем каждые 5 секунд перезагружает эту страницу. Страница загружена ОК, но после 5 секунд, когда следует начать перезагрузку, я получаю следующее:Webview reload page get force close
Особенно в строке 48 где есть метод: wvNovaMenzaCammera.reload();
01-31 21:01:06.198 26188-26361/com.pfittech.menzauniza E/AndroidRuntime﹕ FATAL EXCEPTION: Timer-0
java.lang.RuntimeException: java.lang.Throwable: Warning: A WebView method was called on thread 'Timer-0'. All WebView methods must be called on the UI thread. Future versions of WebView may not support use on other threads.
at android.webkit.WebView.checkThread(WebView.java:2093)
at android.webkit.WebView.reload(WebView.java:955)
at com.pfittech.menzauniza.CommunityFragment$1$1.run(CommunityFragment.java:48)
at java.util.Timer$TimerImpl.run(Timer.java:284)
Caused by: java.lang.Throwable: Warning: A WebView method was called on thread 'Timer-0'. All WebView methods must be called on the UI thread. Future versions of WebView may not support use on other threads.
at android.webkit.WebView.checkThread(WebView.java:2084)
at android.webkit.WebView.reload(WebView.java:955)
at com.pfittech.menzauniza.CommunityFragment$1$1.run(CommunityFragment.java:48)
at java.util.Timer$TimerImpl.run(Timer.java:284)
Существует мой код:
public class CommunityFragment extends Fragment {
WebView wvNovaMenzaCammera;
private static final String TAG = "Cammera 1";
private ProgressDialog progressBarWV1;
public CommunityFragment(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_community, container, false);
wvNovaMenzaCammera = (WebView)rootView.findViewById(R.id.wvCammera1);
getActivity().runOnUiThread(new Runnable() {
public void run() {
WebSettings webSettings = wvNovaMenzaCammera.getSettings();
wvNovaMenzaCammera.getSettings().setJavaScriptEnabled(true);
wvNovaMenzaCammera.loadUrl("http://zuzo.sk/ftp/akt-a.jpg");
new Timer().schedule(new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
wvNovaMenzaCammera.reload();
}
}, 5000, 5000);
}
});
return rootView;
}
um У меня есть небольшая проблема с его работой, но когда я покинул эту активность, я получаю FC, потому что активность больше не существует, но таймер/поток запущен, есть ли способ остановить этот поток/запустить, когда Im покидает эту активность. < –
ссылку на ваш таймер и вызов 'yourTimer.cancel()' когда приложение закрывается (т.е. в 'onPaused()'). –
ok проблема исправлена thx –