我正在检查程序中的互联网访问权限。我想做一个功能,因为这种检查需要经常发生...但我的原始功能必须返回,因为屏幕需要刷新。这就是我所拥有的:
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,它是一个在程序上线时回调的功能。我不知道如何将函数声明为“变量”。有任何想法吗?
答案 0 :(得分:1)
您应该使用Observer Pattern设置一个监听器。这将允许您告诉标记为监听器(可能是您的UI)的任何人您已完成某事。在这种情况下,某事已连接。
在执行此操作时要记住的一件事是确保在UI上执行操作时,您处于事件线程中。