0

我在我的 Android 应用中使用 Parse,我的代码如下所示:

public class SignupActivity extends Activity {
//Collect signup data
User.signupInBackground(data);
}



public class User{
//User methods, constructors, etc
public static void signup(data){
ParseUser pUser = new ParseUser();
//Build data into pUser
pUser.signUpInBackground(new SignUpCallback() {
        public void done(ParseException e){
            if (e!=null){
                Log.v("Signup",e.toString());
            }
        }

    });

所以问题是,当 signUpInBackground 过程完成时,我如何通知我的活动?我不能让 SignupActivity 实现 SignUpCallback,因为它是一个抽象类,我必须扩展 Activity。

最终,我要做的是显示一个对话框或等待动画,然后在后台线程完成后将其删除。或者,后台线程可以启动一个活动。这样做的问题是User类和匿名内部类没有自己的Context,所以不能启动Activity。

我对此很陌生,所以感谢您的帮助。

4

1 回答 1

2

考虑到您当前的代码结构,几种方法可能会起作用。

  1. 创建一个HandlerinSignupActivity并将其传递给 the,User以便它有一种与活动交互的方式。
  2. 制作SignUpCallback一个接口而不是抽象类。
  3. SignUpCallback在您的类中创建一个 concreate 子类的实例SignupActivity;它将可以访问SignupActivity.

我假设它signUpInBackground正在一个工作线程上执行,并且回调是从该线程调用的。如果这是正确的,那么在所有情况下,您都需要SignupActivity通过Handler. 因此,除非其他方法允许更简洁的代码,否则我建议使用方法 #1。

于 2013-06-20T02:56:08.733 回答