我正在使用Parse和我的Android应用程序,我的代码看起来像这样:
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,所以它们无法启动活动。
我对此很新,所以感谢你的帮助。
答案 0 :(得分:2)
根据您当前的代码结构,有几种方法可能会有效。
Handler
中创建SignupActivity
并将其传递给User
,以便与活动进行互动。SignUpCallback
成为一个接口,而不是一个抽象类。SignUpCallback
类中创建SignupActivity
的concreate子类的实例;它可以访问SignupActivity
。我假设signUpInBackground
正在工作线程上执行,并且从该线程调用回调。如果这是正确的,那么在所有情况下,您都需要通过SignupActivity
与Handler
进行互动。因此,我建议方法#1,除非其他方法允许更清晰的代码。