我用的AsyncTask改變TextView中的文字是這樣的工作的AsyncTask不能在線程的Android
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
textView = (TextView) findViewById(R.id.txt);
Button button = (Button)this.findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
new LongOperation().execute(new String[]{"Hello"});
}
});
}
但問題時,我叫它在我的線程中,程序被迫關閉
this.closeButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Thread t= new Thread(){
@Override
public void run(){
try{
//Do something
//Then call AsyncTask
new LongOperation().execute(new String[]{"Hello"});
}catch(Exception e){}
}
};
t.start();
}
});
我在哪裏錯了?我不明白差異如何在線程中調用AsyncTask。
我很好奇你爲什麼需要在另一個線程中調用AsyncTask作爲自己AsyncTask已經是一個單獨的線程。看來這個註釋//做一些你在另一個線程中的東西可能是LongOperation的doInBackground的一部分。你可能有一個有效的用例,但我很少看到這樣使用線程內的線程,比如你正在做什麼。 – momo