编程语言
首页 > 编程语言> > java – Android:你能在DoInBackground中访问AsyncTask类成员吗?

java – Android:你能在DoInBackground中访问AsyncTask类成员吗?

作者:互联网

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

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未作为参数传递,则运行mObjA.aMethod()是否安全?有多线程问题吗?

你应该在doInBackground中只访问故意传递的对象,还是可以在不使用处理程序的情况下自由访问该类的任何成员?

解决方法:

您确实可以访问doInBackground()中的AsyncTask的任何字段,条件是mObjA不是与View相关的Android类,如ViewPager或LinearLayout或基本上任何类型的ViewGroup.

标签:android-handler,android,java,multithreading,android-asynctask
来源: https://codeday.me/bug/20190830/1765324.html