我正在尝试在异步任务(与云服务器通信)中执行回调到不同的Activity方法。因为我的设计会在不同的Activity中调用相同的异步任务。
现在我正在使用需要检查活动名称的方法。有没有办法在调用期间将通用方法函数(如C代码)传递给“LoginAccount”?
public void loginAccount(final Activity activity, final String email, final String password) {
然后启动异步任务 ....... 在这里返回异步任务
@Override
public void onSuccess(Object value) {
String strName = activity.getClass().getSimpleName();
if (strName.equals("MainActivity"))
((MainActivity)activity).updateDeviceName();
else if (strName.equals("LoginActivity"))
((LoginActivity)activity).processLoginResult();
} }
}
答案 0 :(得分:0)
您不能在java中将函数作为参数传递,但是您最接近这种行为的方法是传递Runnable
对象。
答案 1 :(得分:0)
为什么你的任务看起来非常不同?您应该只创建两个不同的类来扩展AsyncTask<>。然后在每个Activity中使用相应的AsyncTask。
答案 2 :(得分:0)
我最终使用不同的方法来解决这个问题。我创建了一个" Service"在后台处理云活动。每个Activity都绑定到Service并使用Messenger来触发Async方法。
这种情况下,我已经阻止了Activity被销毁并且回调消失了。在应用程序关闭之前,服务不会更改。