java - 调用一个函数

标签 java android

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

    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/

相关文章:

java - 如何使用 jackson 解析可能是字符串并且可能是数组的字段

java - 有没有办法使用类变量创建泛型实例?

java - 检测是在 servlet 容器中运行还是独立运行

java - Spring Webflow : binding does not work with map although map values are in the httprequest

android - 使用 Room 数据库的 Google Play 游戏服务

java - 从 java 执行过程时出现 JDBC 连接错误

android - Jitpack:由于未接受某些许可证,无法安装以下 Android SDK 包

java - 如何在 android 模拟器中启用麦克风输入

android - AudioContext() 在某些手机上不存在?

java - 更改 ViewPager v4 中的背景选项卡