- 不要從UI線程
AsyncTask
允許您在用戶界面上執行異步工作的外部訪問Android的UI工具包。它在工作線程中執行阻塞操作,然後將結果發佈到UI線程上,而無需您自己處理線程和/或處理程序。
下面是一個例子:
public void onClick(View v) {
new SomeTask().execute(something);
}
private class SomeTask extends AsyncTask<Something, Void, String> {
/** The system calls this to perform work in a worker thread and
* delivers it the parameters given to AsyncTask.execute() */
protected Bitmap doInBackground(Something something) {
return string; // the TextView's text
}
/** The system calls this to perform work in the UI thread and delivers
* the result from doInBackground() */
protected void onPostExecute(String result) {
textView.setText(result);
}
}
但是,如果你不給你的情況更詳細,沒有確切的答案可能會令你滿意。
例如,在Actvity中我有方法,它將值設置爲TextView。公共無效tvTwoThreadTimeSetText(字符串值){ \t \t電視。的setText(值); //如何正確地從我的班級傳輸值以獲得所需的效果 – Sinigami 2012-04-18 14:53:44
nop,您不能在不使用活動引用的情況下傳輸此值。但是如果您使用某個BroadcastReceiver,那麼您可以通過使用應用程序的上下文來執行此操作(不需要任何活動) – waqaslam 2012-04-18 21:02:30