Ошибка Looper.prepare от AsyncThread "doInBackground()"

Я новичок в Threading, поэтому для кого-то это может быть легко, но для меня это сложно решить. Я пытаюсь показать простым способом, что я хочу делать.

Сначала создайте некоторые объекты в MainActivity:

public class MainActivity extends AppCompatActivity {

ArrayList<Cell> cellsForDB;

public ArrayList<Cell> getCellsForDB(){
    return cellsForDB;
}

protected void onCreate(Bundle savedInstanceState) {
   ...       
   batteryFromIntent = (Battery) getIntent().getSerializableExtra("batteryFromDB");
    generateCellsForDB();
    CellStorage cellStorage = new CellStorage(getBaseContext());
    cellStorage.runCellApiTasks();
   ...
}

public void generateCellsForDB() {

    ArrayList<Cell>() cellsForDB = new ArrayList<Cell>();
    for (int i = 0; i < batteryFromIntent.getCell(); i++) {
        Cell cell = new Cell();
        cell.setCellNo(i + 1);
        cell.setCellVoltage(0);
        cell.setDensity(0);
        cellsForDB.add(cell);
    }
}
}

CellApiTask должен получить ArrayList, который сгенерирован, и должен записать его в базу данных SQL с помощью onPostExecute.

CellApiTask.java

public CellApiTask(Context context) {
    this.context = context;
}

@Override
protected ArrayList<Cell> doInBackground(Void... params) {
    MainActivity cellVoltageClass = new MainAcivity();
    return cellVoltageClass.getCellsForDB();
}

@Override
protected void onPostExecute(ArrayList<Cell> cell) {
 ...
}

Это журнал ошибок, если я пытаюсь запустить его:

FATAL EXCEPTION: AsyncTask #3
                                                                           Process: fronius.com.serviceapp_frontend, PID: 4456
                                                                           java.lang.RuntimeException: An error occurred while executing doInBackground()
                                                                               at android.os.AsyncTask$3.done(AsyncTask.java:318)
                                                                               at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
                                                                               at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
                                                                               at java.util.concurrent.FutureTask.run(FutureTask.java:242)
                                                                               at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
                                                                               at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
                                                                               at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
                                                                               at java.lang.Thread.run(Thread.java:762)
                                                                            Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
                                                                               at android.os.Handler.<init>(Handler.java:200)
                                                                               at android.os.Handler.<init>(Handler.java:114)
                                                                               at android.app.Activity.<init>(Activity.java:845)
                                                                               at android.support.v4.app.SupportActivity.<init>(SupportActivity.java:31)
                                                                               at android.support.v4.app.BaseFragmentActivityGingerbread.<init>(BaseFragmentActivityGingerbread.java:37)
                                                                               at android.support.v4.app.BaseFragmentActivityHoneycomb.<init>(BaseFragmentActivityHoneycomb.java:29)
                                                                               at android.support.v4.app.BaseFragmentActivityJB.<init>(BaseFragmentActivityJB.java:30)
                                                                               at android.support.v4.app.FragmentActivity.<init>(FragmentActivity.java:79)
                                                                               at android.support.v7.app.AppCompatActivity.<init>(AppCompatActivity.java:61)
                                                                               at xxxxxx.com.xxxxx_frontend.utils.xxxxxx.MainActivity.<init>(MainActivity.java:0)
                                                                               at xxxxx.com.xxxxxx_frontend.api.tasks.CellApiTask.doInBackground(CellApiTask.java:29)
                                                                               at xxxxxx.com.xxxxxx_frontend.api.tasks.CellApiTask.doInBackground(CellApiTask.java:20)
                                                                               at android.os.AsyncTask$2.call(AsyncTask.java:304)
                                                                               at java.util.concurrent.FutureTask.run(FutureTask.java:237)