相关疑难解决方法(0)

如何从ASyncTask调用父活动功能?

setAccountAuthenticatorResult可以从Activity中调用,它可以扩展AccountAuthenticatorActivity.我的活动扩展了,但是启动了ASyncTask,因此setAccountAuthenticatorResult应该从ASyncTask调用(或者,ASyncTask的结果应该传递回主线程).

怎么做?

下面的代码有什么问题?

AsyncTask<Uri, Void, Bundle> task = new RetrieveAccessTokenTask(this, consumer, provider, prefs).execute(uri);

public class RetrieveAccessTokenTask extends AsyncTask<Uri, Void, Bundle> {
    private Context context;

    public RetrieveAccessTokenTask(Context context, OAuthConsumer consumer,
            OAuthProvider provider, SharedPreferences prefs) {
        this.context = context;
    }

    @Override
    protected void onPostExecute(Bundle result) {
        context.setAccountAuthenticatorResult(); // doesn't work

    }
Run Code Online (Sandbox Code Playgroud)

android accountmanager android-asynctask

19
推荐指数
1
解决办法
4万
查看次数

无法在AsyncTask中访问"findViewById"

我正在使用AsyncTask类从php文件下载数据.下载后,我想把这些数据放到不同的TextViews中,但我不能使用findViewById方法.

问题是,我是通过单独的类来完成的,而这一切都在一个片段中.

这是我的代码:

public class RecuperarComentarisFoto extends AsyncTask<String, String, String>{
private Context mContext;
[...]
public RecuperarComentarisFoto(Context context){
    this.mContext=context;
}
@Override
protected void onPreExecute() {
    [...]
}

@Override
protected String doInBackground(String... arg0) { 
    params.add(new BasicNameValuePair("pid", "1"));
    JSONObject json = jsonParser.makeHttpRequest(url_get_comentaris, "GET", params);
    JSONArray productObj;
    //HERE I RETRIEVE DATA FROM JSON. ITS WORKING OK.

    return null;
}
Run Code Online (Sandbox Code Playgroud)

我遇到问题的地方:

@Override
protected void onPostExecute(String result) {
    super.onPostExecute(result);
    this.pDialog.dismiss();
    TextView comentariEditText = (TextView) findViewById(R.id.commentsMostrar);
}
Run Code Online (Sandbox Code Playgroud)

我试过这个:

        TextView comentariEditText = (TextView) mContext.findViewById(R.id.commentsMostrar);
Run Code Online (Sandbox Code Playgroud)

但是也不行.

请注意,我从片段中调用此AsyncTask.如您所见,我必须将getActivity()检索的上下文传递给AsyncTask:

public class …
Run Code Online (Sandbox Code Playgroud)

android android-asynctask

11
推荐指数
1
解决办法
2万
查看次数