【发布时间】:2017-05-12 06:36:11
【问题描述】:
我正在尝试让 @Subscribe 从 AsyncTask 回调活动。我已经阅读了 Otto 技术文档,并且还阅读了许多不同的在线文章以及堆栈上的文章,但它们似乎都没有帮助我解决我的问题。
AsynTask 调用完美,并记录在我的日志中,我什至可以从发布请求中获得响应。正如我在其他问题和技术文档中看到的那样,我也在注册 otto 和注销它。
我通过从 SignupActivity 传入适当的参数来执行我的任务:
new SignupTask(SignupActivity.this,
(questionPosition + 1),
response.getEditText().getText().toString(),
FirstName.getEditText().getText().toString(),
LastName.getEditText().getText().toString(),
Mail.getEditText().getText().toString(),
Pass.getEditText().getText().toString(),
"0.0.0.0").execute();
我的 SignupTask 然后进行异步调用:
@Override
public Integer call() throws Exception {
android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_BACKGROUND);
client.getAPIInterface().SignUp(new TaskRequests.SignUpRequest(firstNameString,
lastNameString,
email,
pass,
pass),new Callback<String>() {
@Override
public void success(String msg, Response response) {
SignupResponse resp = new SignupResponse();
resp.setMsg(msg);
OttoBusSingleton.getInstance().post(resp);
}
现在在 SignupActivity 上,我有一个方法可以通过 @Subscribe 处理 Otto:
@Subscribe
public void onSignUpSuccess(SignupResponse event) {
loading.dismiss();
if(!BuildConfig.DEBUG_MODE) {
Log.i(TAG, "!BuildConfig.DEBUG_MODE : " + AnswersAnalytics.SIGN_UP_PATIENT);
Answers.getInstance().logCustom(new CustomEvent(AnswersAnalytics.SIGN_UP));
}
Toast.makeText(this,
event.getMsg(),
Toast.LENGTH_LONG).show();
this.finish();
}
从这里我试图让 Otto 回调处理 SignupActivity 上的成功,并且在放置断点时它永远不会被命中。
我已确保导入正确,但我似乎无法确定可能的解决方案。
【问题讨论】:
标签: android android-activity android-asynctask otto