【发布时间】:2015-12-02 10:42:30
【问题描述】:
在我的 android 应用程序中,我有一个 MainActivity,我通过单击一个按钮来触发另一个函数:
ImageButton button_1 = (ImageButton) findViewById(R.id.button_trigger);
button_1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
webView = (WebView) findViewById(R.id.webViewLayout);
MyClass myCls = new MyClass(getApplicationContext());
myCls.getWebView(authWebView);
}
});
在 MyClass 类中,我通过以下方式触发 AsyncTaks:
RespsonseGetterTask task = new RespsonseGetterTask();
task.execute(parameter);
然后在此处使用 postExecute 实现:
private class RespsonseGetterTask extends AsyncTask<String, Void, Boolean> {
@Override
protected Boolean doInBackground(String... args) {
IdTokenResponse response;
try {
response = HttpUtils.request(args);
} catch (IOException e) {
return false;
}
return true;
}
@Override
protected void onPostExecute(Boolean wasSuccess) {
if (wasSuccess) {
logger.debug("SUCCESSFULL");
// take actions
} else {
logger.debug("Error");
// take actions on error
}
}
我可以得到一个IdTokenResponse 对象,这样我的响应变量就有了有效的内容。所以那个响应对象在那个味道中,我的 MainActivity 没有注意到最近的结果。
如何向我的 MainActivity 发送有关响应 (IdTokenResponse) 对象的信号?
【问题讨论】:
-
您可以通过两种方式做到这一点
first使用interface和second您可以将myclass设为innerclass,然后从myclass覆盖方法 -
Check - 但我也认为使用 Async 任务而没有它的 post execute 对你有用是没有乐趣的。您应该选择服务。
-
您可以将 ResponseGetterTask 作为主要活动的内部类。这样该响应就可以在其中使用
-
@Srinivasan 但是必须在 MyClass 中触发 RepsonsgetterTask。
-
尝试在类和异步 postExecute() 中进行方法调用的返回类型
标签: android android-activity android-asynctask