gpt4 book ai didi

java - 后台线程完成后返回 Android Activity

转载 作者:行者123 更新时间:2023-12-02 06:56:55 29 4
gpt4 key购买 nike

我在 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 过程完成时,如何通知我的 Activity?我无法让 SignupActivity 实现 SignUpCallback,因为它是一个抽象类,我必须扩展 Activity。

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

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

最佳答案

根据您当前的代码结构,有几种方法可能有效。

  1. SignupActivity 中创建一个 Handler 并将其传递给 User,以便它能够与 Activity 交互。
  2. 使 SignUpCallback 成为一个接口(interface)而不是抽象类。
  3. SignupActivity 类中创建 SignUpCallback 的 concreate 子类的实例;它将有权访问 SignupActivity 的方法。

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

关于java - 后台线程完成后返回 Android Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17204520/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com