-1
我有一個Handler在活動中聲明爲全局變量。該處理程序接收來自線程的消息並更新de UI。處理程序不會在ondestroy()後更新UI
一切工作正常,直到應用程序發送到背景,調用onDestroy。
當我回到應用程序時,線程不斷髮送消息給處理程序,它會在UI上進行更改,但不會再顯示這些更改。
我不想在onpause之後停止線程,因爲它必須要讀取我需要的一些信息,即使應用程序在後臺也是如此。
我該如何得到這個工作?
這是聲明爲全局變量的處理程序:
Handler hRefreshData=new Handler() {
@Override
public void handleMessage(Message msg) {
edText2 = (EditText) findViewById(R.id.textarea2);
edText2.setTextAlignment(View.TEXT_ALIGNMENT_TEXT_START);
edText2.setTextSize(20);
edText2.setBackgroundColor(Color.rgb(255, 255, 255));
edText2.setText("");
for (int i = 0; i < tag_db_index; i++) {
if (tag_db[i].getActive() == TRUE) {
edText2.append("[" + i + "]\t");
edText2.append("ANT " + tag_db[i].tag.getAntenna() + "\t");
edText2.append("\n");
}
}
}
這是線程,開始當用戶按下按鈕閱讀:
thrRead = new Thread() {
public void run() {
while (bRunningRead) {
// El siguiente método realiza sólo lectura (la conexión ya está abierta)
aReadTags = lectura();
processTags();
try{
semaforo.acquire();
copyaReadTags();
semaforo.release();
}
catch(InterruptedException e)
{
}
Message m = new Message();
if (bRunningRead)
hRefreshData.sendMessage(m);
}
}
};
thrRead.start();
顯示您的代碼。 – Piyush
您應該對服務,警報或作業執行後臺任務,並在任何可見時讓活動請求/偵聽任務的更新。您正在使用錯誤的機制來完成任務 –
閱讀關於Android中如何使用tondo後臺任務的信息。網上有很多信息。 –