I have a problem with my cache system for android and what i want is to cache my last view for android and open it in offline mode but in case of online want the live page not the cached one if we take any website of price as an example like this one http://www.oil-price.net/ and this my java class code
public class Petroleum_price extends Fragment {
public Petroleum_price() {
// Required empty public constructor
}
Context context;
WebView mwebView;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.activity_petroleum_price, container, false);
context = container.getContext();
mwebView = new WebView(context);
mwebView = (WebView) v.findViewById(R.id.webView);
WebSettings webSettings = mwebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mwebView.getSettings().setAppCachePath( getActivity().getApplicationContext().getCacheDir().getAbsolutePath() );
mwebView.getSettings().setAppCacheEnabled(true);
mwebView.getSettings().setAllowFileAccess( true );
webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
webSettings.setUseWideViewPort(true);
webSettings.setSaveFormData(true);
CookieManager.getInstance().setAcceptCookie(true);
if ( !isNetworkAvailable() ) { // loading offline
mwebView.getSettings().setCacheMode( WebSettings.LOAD_CACHE_ELSE_NETWORK );
}
mwebView.loadUrl( "http://www.oil-price.net/" );
return v;
}
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager = (ConnectivityManager) getActivity().getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
}