class 用法中如何使用上下文?

How is context used in a class usage?

适合我的代码行是:

this.databaseHandler = new DatabaseHandler(MainActivity.

我在项目中有那个模块,这一行来自我试图合并的另一个项目。我相信我需要这一行并且无法理解此处使用的上下文参数。 是的,这条线是不完整的,因为我无法完成它。 我的整个结构或思路会不会错了?

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.AsyncTask;


import com.Table.TableMainLayout;
import com.example.tablefreezepane.DatabaseHandler;

public class MainActivity extends Activity {

final String TAG = "MainActivity.java";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    /* Loads next module */
    setContentView(new TableMainLayout(this));
}
}
public class AsyncInsertData extends AsyncTask<String, String, String> {

DatabaseHandler databaseHandler;
String type;
long timeElapsed;

protected AsyncInsertData(String type){
    this.type  = type;
    this.databaseHandler = new DatabaseHandler(MainActivity.
     //(MainActivity.this);
}

// @type - can be 'normal' or 'fast'
//@Override
//protected void onPreExecute() {
//    super.onPreExecute();
//    tvStatus.setText("Inserting " + editTextRecordNum.getText() + " records...");
//}

@Override
protected String doInBackground(String... aurl) {

    try {

        // get number of records to be inserted
        int insertCount = 20;

        // empty the table
        databaseHandler.deleteRecords();

        // keep track of execution time
        long lStartTime = System.nanoTime();

        if (type.equals("normal")) {
            databaseHandler.insertNormal(insertCount);
        } else {
            databaseHandler.insertFast(insertCount);
        }

        // execution finised
        long lEndTime = System.nanoTime();

        // display execution time
        timeElapsed = lEndTime - lStartTime;

    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

protected void onPostExecute(String unused) {
    //Toast.makeText(getApplicationContext(),"This is an Android Toast Message", Toast.LENGTH_LONG).show();
    //tvStatus.setText("Done " + choice + " inserting " + databaseHandler.countRecords() + " records into table: [" + this.databaseHandler.tableName + "]. Time elapsed: " + timeElapsed / 1000000 + " ms.");
}

}

提前致谢。

在异步的地方,您无法像现在这样从 MainActivity 访问上下文。为此,添加带有上下文参数的构造函数,然后将 MainActivity.this 替换为 context