Android 当internet连接不可用时,如何显示ProgsBar?
我正在使用Android应用程序。当互联网连接不可用时,应用程序关闭。我用了很少的方法来解决这个问题,但我不能。我在谷歌搜索了更多的论坛,但是找不到。也许你能解决这个问题 应用内使用Android 当internet连接不可用时,如何显示ProgsBar?,android,jsoup,android-webview,Android,Jsoup,Android Webview,我正在使用Android应用程序。当互联网连接不可用时,应用程序关闭。我用了很少的方法来解决这个问题,但我不能。我在谷歌搜索了更多的论坛,但是找不到。也许你能解决这个问题 应用内使用Webview和Jsoup解析器。我给你们所有的主要活动代码是为了更好的理解 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentV
Webview
和Jsoup
解析器。我给你们所有的主要活动代码是为了更好的理解
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
webview= (WebView) findViewById(R.id.webview1);
webview.getSettings().setCacheMode( WebSettings.LOAD_CACHE_ELSE_NETWORK );
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webview.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
new MyAsynTask().execute(url);
return super.shouldOverrideUrlLoading(view, url);
}
});
new MyAsynTask().execute(this.url);
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
Intent myIntent = new Intent(getApplicationContext(), MainActivity.class);
startActivityForResult(myIntent, 0);
return true;
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
FragmentManager fragmentManager = getFragmentManager();
if (id == R.id.nav_camera) {
url="http://hut.az/arenda-kvartir/";
webview.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
new MyAsynTask().execute(url);
return super.shouldOverrideUrlLoading(view, url);
}
});
new MyAsynTask().execute(this.url);
} else if (id == R.id.nav_gallery) {
url="http://hut.az/prodaja-kvartir/";
webview.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
new MyAsynTask().execute(url);
return super.shouldOverrideUrlLoading(view, url);
}
});
new MyAsynTask().execute(this.url);
} else if (id == R.id.nav_slideshow) {
url="http://hut.az/novostroyki/";
webview.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
new MyAsynTask().execute(url);
return super.shouldOverrideUrlLoading(view, url);
}
});
new MyAsynTask().execute(this.url);
} else if (id == R.id.nav_manage) {
} else if (id == R.id.nav_share) {
} else if (id == R.id.nav_send) {
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
private class MyAsynTask extends AsyncTask<String, Void, Document > {
@Override
protected Document doInBackground(String... urls) {
Document document = null;
try {
document= Jsoup.connect(urls[0]).get();
document.getElementsByClass("header1").remove();
document.getElementsByClass("topbar clearfix").remove();
document.getElementsByClass("mapandslider").remove();
document.select("div#right_sidebar").remove();
document.select("div#left_sidebar").remove();
document.getElementsByClass("footer1").remove();
document.getElementsByClass("copyright").remove();
} catch (IOException e) {
e.printStackTrace();
this.ShowMess();
}
return document;
}
public void ShowMess(){
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setTitle("Internet Baglantisi Yoxdur !");
progressDialog.setMessage("Zəhmət olmasa gözləyin...");
progressDialog.setIndeterminate(false);
progressDialog.show();
}
protected void onPreExecute() {
super.onPreExecute();
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setTitle("Yüklənir");
progressDialog.setMessage("Zəhmət olmasa gözləyin...");
progressDialog.setIndeterminate(false);
progressDialog.show();
}
@Override
protected void onPostExecute(Document document) {
super.onPostExecute(document);
webview.loadDataWithBaseURL(url,document.toString(),"text/html","utf-8","");
progressDialog.dismiss();
}
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
抽屉布局抽屉=(抽屉布局)findViewById(R.id.抽屉布局);
ActionBarDrawerToggle切换=新建ActionBarDrawerToggle(
这,抽屉,工具栏,R.string.navigation\u drawer\u open,R.string.navigation\u drawer\u close);
抽屉。添加抽屉链接器(切换);
toggle.syncState();
NavigationView NavigationView=(NavigationView)findViewById(R.id.nav_视图);
navigationView.setNavigationItemSelectedListener(此);
webview=(webview)findViewById(R.id.webview1);
webview.getSettings().setCacheMode(WebSettings.LOAD\u CACHE\u ELSE\u网络);
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
setWebViewClient(新的WebViewClient(){
@凌驾
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){
新建MyAsynTask().execute(url);
返回super.shouldOverrideUrlLoading(视图、url);
}
});
新建MyAsynTask().execute(this.url);
}
@凌驾
public void onBackPressed(){
抽屉布局抽屉=(抽屉布局)findViewById(R.id.抽屉布局);
if(抽屉isDrawerOpen(重力压缩机启动)){
抽屉。关闭抽屉(重力压缩机启动);
}否则{
super.onBackPressed();
}
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
Intent myIntent=newintent(getApplicationContext(),MainActivity.class);
startActivityForResult(myIntent,0);
返回true;
}
@SuppressWarnings(“StatementWithEmptyBody”)
@凌驾
公共布尔值onNavigationItemSelected(MenuItem项){
//处理导航视图项单击此处。
int id=item.getItemId();
FragmentManager FragmentManager=getFragmentManager();
if(id==R.id.nav_摄像机){
url=”http://hut.az/arenda-kvartir/";
setWebViewClient(新的WebViewClient(){
@凌驾
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){
新建MyAsynTask().execute(url);
返回super.shouldOverrideUrlLoading(视图、url);
}
});
新建MyAsynTask().execute(this.url);
}否则如果(id==R.id.nav_画廊){
url=”http://hut.az/prodaja-kvartir/";
setWebViewClient(新的WebViewClient(){
@凌驾
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){
新建MyAsynTask().execute(url);
返回super.shouldOverrideUrlLoading(视图、url);
}
});
新建MyAsynTask().execute(this.url);
}else if(id==R.id.nav_幻灯片){
url=”http://hut.az/novostroyki/";
setWebViewClient(新的WebViewClient(){
@凌驾
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){
新建MyAsynTask().execute(url);
返回super.shouldOverrideUrlLoading(视图、url);
}
});
新建MyAsynTask().execute(this.url);
}else if(id==R.id.nav_manage){
}else if(id==R.id.nav_共享){
}else if(id==R.id.nav_send){
}
抽屉布局抽屉=(抽屉布局)findViewById(R.id.抽屉布局);
抽屉。关闭抽屉(重力压缩机启动);
返回true;
}
私有类MyAsynTask扩展异步任务{
@凌驾
受保护文档doInBackground(字符串…URL){
单据=空;
试一试{
document=Jsoup.connect(URL[0]).get();
document.getElementsByClass(“header1”).remove();
document.getElementsByClass(“topbar clearfix”).remove();
document.getElementsByClass(“mapandslider”).remove();
文档。选择(“div#right_边栏”)。删除();
文档。选择(“div#left#u边栏”)。删除();
document.getElementsByClass(“footer1”).remove();
document.getElementsByClass(“版权”).remove();
}捕获(IOE异常){
e、 printStackTrace();
这是showmesss();
}
归还文件;
}
公共图书馆{
progressDialog=新建progressDialog(MainActivity.this);
progressDialog.setTitle(“Internet Baglantisi Yoxdur!”);
progressDialog.setMessage(“Zəhmət olmasa gözləyin…”);
progressDialog.setUndeterminate(false);
progressDialog.show();
}
受保护的void onPreExecute(){
super.onPreExecute();
progressDialog=新建progressDialog(MainActivity.this);
progressDialog.setTitle(“Yüklənir”);
progressDialog.setMessage(“Zəhmət olmasa gözləyin…”);
progressDialog.setUndeterminate(false);
progressDialog.show();
}
@凌驾
受保护的void onPostExecute(文档){
super.onPostExecute(文档);
loadDataWithBaseURL(url,document.toString(),“text/html”,“utf-8”,“utf-8”);
progressDialog.disclose();
}
}
}在活动或片段中显示进度条的位置。内部oncreate。也可以在else中完成您的工作。复制整个代码
use following method:
private boolean checkNetwork() {
boolean wifiDataAvailable = false;
boolean mobileDataAvailable = false;
ConnectivityManager conManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] networkInfo = conManager.getAllNetworkInfo();
for (NetworkInfo netInfo : networkInfo) {
if (netInfo.getTypeName().equalsIgnoreCase("WIFI"))
if (netInfo.isConnected())
wifiDataAvailable = true;
if (netInfo.getTypeName().equalsIgnoreCase("MOBILE"))
if (netInfo.isConnected())
mobileDataAvailable = true;
}
return wifiDataAvailable || mobileDataAvailable;
}
where you want to show progressbar.
if(!checkNetwork()){
show progressbar or you want to show toast also like no internet connection avilable please try again
}
else {
your task you want
}