Android版:您可以访问AsyncTask的类成员DoInBackground? [英] Android: can you access AsyncTask class members in DoInBackground?

查看:132
本文介绍了Android版:您可以访问AsyncTask的类成员DoInBackground?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

它是安全运行的方法的的AsyncTask 类成员中的 DoInBackground ?或者你需要使用一个处理程序?

Is it safe to run a method of an AsyncTask class member inside the DoInBackground? or do you need to use a handler?

private class MyAsyncTask extends AsyncTask<Void, Void, Void> {

    Object mObjA = null:

    private MyAsyncTask(Object objA) {
        mObjA = objA
    }

    protected void doInBackground(Void... params) {
        mObjA.aMethod()
    }

}

doInBackground 是它的安全运行 mObjA.aMethod()如果 mObjA 作为参数没有通过呢?有一个多线程的问题?

in doInBackground is it safe to run mObjA.aMethod() if mObjA wasn't passed as a parameter? is there a multithreading issue?

这是有人故意通过你应该在 doInBackground 只能访问对象,或者您可以自由访问类的任何成员,而无需使用处理程序?

should you in doInBackground only access objects which have been deliberately passed, or can you freely access any member of the class without using handlers?

推荐答案

您确实可以访问你的的AsyncTask 的任何领域内的 doInBackground(),其条件是 mObjA 不是UI相关的Andr​​oid类如 ViewPager 的LinearLayout 或任何形式的的ViewGroup 基本

You can indeed access any field of your AsyncTask inside doInBackground(), with the condition that mObjA is not a UI-related Android class like ViewPager or LinearLayout or any sort of ViewGroup basically.

这篇关于Android版:您可以访问AsyncTask的类成员DoInBackground?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆