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