如何發送兩個參數到一個線程和運行方法,當用戶按下顯示器上的按鈕。在UI線程中使我的變量不起作用,並在UI線程隨機重新啓動時被擦除。
UI線程_ __ _ __ _ __ _ ____其他線程
用戶按下按鈕------->運行方法
乾杯。
如何發送兩個參數到一個線程和運行方法,當用戶按下顯示器上的按鈕。在UI線程中使我的變量不起作用,並在UI線程隨機重新啓動時被擦除。
UI線程_ __ _ __ _ __ _ ____其他線程
用戶按下按鈕------->運行方法
乾杯。
看一看這個blog article。它描述瞭如何讓線程在屏幕旋轉中工作。
我想你應該只是定義聽衆爲您的按鈕。而這些監聽器應該反過來,用你想要的參數啓動線程,執行其他任務,同時保持UI可用,並在這些線程執行時再次對用戶負責。 你需要的東西是這樣的:
public void onClick(View v) {
new Thread(new Runnable() {
public void run() {
Bitmap b = loadImageFromNetwork();
mImageView.setImageBitmap(b);
}
}).start();
}
這個例子是從Android Developers Blog,在那裏你可以得到其他有用的信息和提示服用。
這將不起作用,因爲當屏幕方向更改時,變量仍然爲零。 – Mitchell 2010-10-12 00:00:49
你沒有提到你的帖子中的屏幕方向改變。這還不是我已經處理過的,但最終,如果在屏幕方向更改時調用某個方法,則可以使用它來保存重要變量和/或將線程應用到線程使用的對象,如果需要暫時停止他們的活動,或向他們發出變化信號。 – 2010-10-12 00:58:25
爲什麼run()而不是start()? – 2012-10-11 18:52:47
如果你需要的東西呆在身邊超越單一活動實例的生命週期,你可能想在使用服務來查找:http://developer.android.com/reference/android/app/Service.html – 2010-10-12 00:13:05
如果我有一個對象,我把值放入它,屏幕方向改變我失去了該對象,它變成了空。我需要這樣纔不會發生。我可以用服務做到嗎? – Mitchell 2010-10-12 00:30:40