我試圖使用setContentView
方法將我的視圖帶到前面,但是在執行此操作時出現此錯誤。只有創建視圖層次結構的原始線程可以觸及其視圖 - 致命例外
從這裏搜索類似問題我發現這個錯誤通常會導致試圖獲取/設置佈局視圖對象的值。沒有實例化,但這不是這種情況,我甚至無法設置視圖。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ticker);
Thread tmr = new Thread() {
public void run() {
try {
sleep(1000);
} catch (InterruptedException iEx) {
iEx.printStackTrace();
} finally {
User usrObj = new User();
if (usrObj.authenticateUser()) {
Intent mainActivity = new Intent(
"android.intent.action.Homeview");
startActivity(mainActivity);
} else {
setContentView(R.layout.login); // <- ERROR
activateLogin();
}
}
}
};
tmr.start();
}
UI相關操作只能由UI線程處理。你正在一個新的線程中設置一個視圖。使用線程中的消息處理程序將信息傳遞給UI線程或使用AsynTask! –