android-在没有互联网的设备上通过Firebase隐藏ProgressDialog

android-在没有互联网的设备上通过Firebase隐藏ProgressDialog,第1张

概述我有这种情况:>显示进度对话框.>呼叫Firebase.>数据获取后隐藏进度对话框可以正常工作,但是当设备没有Internet连接时就会出现问题,在这种情况下,总是显示进度对话框,当设备没有Internet时我想做的就是关闭进度并显示错误消息.这是我的代码:showProgessDialog();Fireb

我有这种情况:

>显示进度对话框.
>呼叫Firebase.
>数据获取后隐藏进度对话框

可以正常工作,但是当设备没有Internet连接时就会出现问题,在这种情况下,总是显示进度对话框,当设备没有Internet时我想做的就是关闭进度并显示错误消息.

这是我的代码:

showProgessDialog();        FirebaseDatabase database = FirebaseDatabase.getInstance();        DatabaseReference myRef = database.getReference("hello");        DatabaseReference connectedRef = FirebaseDatabase.getInstance().getReference(".info/connected");        connectedRef.addValueEventListener(new ValueEventListener() {            @OverrIDe            public voID onDataChange(DataSnapshot snapshot) {                boolean connected = snapshot.getValue(Boolean.class);                if (connected) {                    Log.d(Constans.LOG,"1.- datachange connected");                    hIDeProgressDialog();                } else {                    Log.d(Constans.LOG,"2.- datachange disconnected");                    showProgessDialog();                }            }            @OverrIDe            public voID onCancelled(DatabaseError error) {                System.err.println("3.- datachange cancelled");            }        });        myRef.addListenerForSingleValueEvent(new ValueEventListener() {            @OverrIDe            public voID onDataChange(DataSnapshot dataSnapshot) {                Log.d(Constans.LOG,"4.- myRef addListenerForSingleValueEvent onDataChange");            }            @OverrIDe            public voID onCancelled(DatabaseError databaseError) {                Log.d(Constans.LOG,"5.- myRef addListenerForSingleValueEvent cancell");            }        });        myRef.addValueEventListener(new ValueEventListener() {            @OverrIDe            public voID onDataChange(DataSnapshot dataSnapshot) {                Log.d(Constans.LOG,"6.- myRef addValueEventListener onDataChange");                String value = dataSnapshot.getValue(String.class);                mAboutMe.setText(value);            }            @OverrIDe            public voID onCancelled(DatabaseError error) {                Log.d(Constans.LOG,"7.- myRef addValueEventListener error"+error.getDetails());            }        });

如您所见,所有被调用的方法在日志行中都有一个数字,当设备具有互联网连接时,这些方法的调用顺序为:

2,1,6,4

没有互联网的时候就叫

2

我无法在打开它的位置关闭进度.

关于使用Firebase框架可以做什么的任何想法?

解决方法:

您可以使用此类的isConnected方法检查设备的Internet连接.然后在没有互联网连接时关闭进度对话框

public class InternetConnectionDetector{   private Context context;   public InternetConnectionDetector(Context context)   {       this.context = context;   }   public boolean isConnected()   {       ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);       //There are changes after apk lollipop while detecting internet connection:       //if user's os newer then lollipop:       if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LolliPOP)       {           Network[] networks = connectivityManager.getAllNetworks();           NetworkInfo networkInfo;           for(Network mNetwork : networks)           {               networkInfo = connectivityManager.getNetworkInfo(mNetwork);               if(networkInfo.getState().equals(NetworkInfo.State.CONNECTED))               {                   return true;               }           }       }       //if user's os older then lollipop:       else       {           //getAllNetworkInfo method work for only before API 19:           NetworkInfo[] info = connectivityManager.getAllNetworkInfo();           if(info != null)           {               for(NetworkInfo anInfo : info)               {                   if(anInfo.getState() == NetworkInfo.State.CONNECTED)                   {                       return true;                   }               }           }       }       return false;   }}
总结

以上是内存溢出为你收集整理的android-在没有互联网的设备上通过Firebase隐藏ProgressDialog全部内容,希望文章能够帮你解决android-在没有互联网的设备上通过Firebase隐藏ProgressDialog所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1095598.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存