我正在检查程序中的互联网访问。我想为此做一个函数,导致经常需要进行此检查...但是我的原始函数必须在返回时返回,因为屏幕需要刷新。这就是我所拥有的:

    public void isOnline(Runnable Rcallback, Ccallback) {

         ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
         boolean checkState = cm.getActiveNetworkInfo().isConnectedOrConnecting();

         if(checkState) {
             isOnline = true;
            if(Rcallback != null) Rcallback.run();
            if(Ccallback != null) set;}
         else {
             isOnline = false;
             Toast.makeText(gMain.this, R.string.nointernet, Toast.LENGTH_LONG).show();
             Handler reTry = new Handler();
                reTry.postDelayed(new Runnable() {

                @Override
                public void run() {
                    isOnline(callback) ;
                }
            },3000);
         }



        }


我真正的问题是在Ccallback中,它是在程序联机时进行回调的函数。我不知道如何将函数声明为“变量”。有任何想法吗?

最佳答案

您应该使用Observer Pattern设置侦听器。这样,您就可以告诉任何被标记为侦听器的人(可能是您的UI)您已完成某件事。在这种情况下,连接了某些东西。

在执行此操作时要记住的一件事是确保在UI上执行操作时,您处于事件线程上。

关于java - 调出功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5736607/

10-10 01:39