2010-10-11 44 views
0

問候。Java/Android中的線程

如何發送兩個參數到一個線程和運行方法,當用戶按下顯示器上的按鈕。在UI線程中使我的變量不起作用,並在UI線程隨機重新啓動時被擦除。

UI線程_ __ _ __ _ __ _ ____其他線程

用戶按下按鈕------->運行方法

乾杯。

+0

如果你需要的東西呆在身邊超越單一活動實例的生命週期,你可能想在使用服務來查找:http://developer.android.com/reference/android/app/Service.html – 2010-10-12 00:13:05

+0

如果我有一個對象,我把值放入它,屏幕方向改變我失去了該對象,它變成了空。我需要這樣纔不會發生。我可以用服務做到嗎? – Mitchell 2010-10-12 00:30:40

回答

1

看一看這個blog article。它描述瞭如何讓線程在屏幕旋轉中工作。

3

我想你應該只是定義聽衆爲您的按鈕。而這些監聽器應該反過來,用你想要的參數啓動線程,執行其他任務,同時保持UI可用,並在這些線程執行時再次對用戶負責。 你需要的東西是這樣的:

public void onClick(View v) { 
    new Thread(new Runnable() { 
    public void run() { 
     Bitmap b = loadImageFromNetwork(); 
     mImageView.setImageBitmap(b); 
    } 
    }).start(); 
} 

這個例子是從Android Developers Blog,在那裏你可以得到其他有用的信息和提示服用。

+0

這將不起作用,因爲當屏幕方向更改時,變量仍然爲零。 – Mitchell 2010-10-12 00:00:49

+0

你沒有提到你的帖子中的屏幕方向改變。這還不是我已經處理過的,但最終,如果在屏幕方向更改時調用某個方法,則可以使用它來保存重要變量和/或將線程應用到線程使用的對象,如果需要暫時停止他們的活動,或向他們發出變化信號。 – 2010-10-12 00:58:25

+0

爲什麼run()而不是start()? – 2012-10-11 18:52:47