当前位置: 代码迷 >> Android >> 请教子线程的context是什么
  详细解决方案

请教子线程的context是什么

热度:79   发布时间:2016-04-28 01:49:23.0
请问子线程的context是什么?
想写一个小程序,其中一个功能就是在主线程开辟一个子线程,在子线程中完成创建数据库
主线程如下:
public class MainActivity extends ActionBarActivity {
private TextView text1,text2,text3;
private Thread CREATE,ADD,LOAD;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text1=(TextView)findViewById(R.id.text1);    

CREATE=new CreateThread();
CREATE.start();
}
子线程如下:
public class CreateThread extends Thread{

@Override
public void run() {
// TODO 自动生成的方法存根

OPhelper create=new OPhelper(MainActivity.this, "stutab", null, 1);

super.run();
}
}
问题就在调用这个OPhelper(SQLiteHelper)中第一个context的参数总是报错,无论是MainActivity.this还是this都报错。于是就求问子线程的context是什么?难道不是主线程所在的activity的context么?
还是说我的思路有问题?
------解决思路----------------------
构造方法啊。。。。必定可以的。。。。如果你一定要自己定义一个类那么你就写个构造方法  参数为 Context context  然后创建时候给个this就可以了
------解决思路----------------------
引用:
Quote: 引用:

还有为什么要重新定义一个类  匿名内部类不好用么??    直接new Thread (){ public void run(){}}。start()里面写多好。。。


引用:
Quote: 引用:

还有为什么要重新定义一个类  匿名内部类不好用么??    直接new Thread (){ public void run(){}}。start()里面写多好。。。
+1,没有特殊需求直接new Thread()比较方便。


单独重新定义一个类的原因只是因为我考虑到可能需要写多个线程,如果都挤在mianactivity里面,以后阅读和修改不方便,所以打算单独拎出来写。匿名内部类可以实现没问题,之前也是这么做的,不过代码一长就有点不舒服。
那就在构造里传递一下就可以了。
  相关解决方案