2011-03-10 52 views
6

在我的應用程序中,我需要從活動獲取價值到服務。我需要檢索的值是我在該活動中單擊的值。一個包是否可以傳遞給一個服務?

對於例如:如果i。從活動A選擇X [I]元件,我需要檢索該值x [i]於服務S.

如何可能?

感謝,

尼基

回答

7

在服務上使用該:

public int onStartCommand (Intent intent, int flags, int startId) 
{ 
    super.onStartCommand(intent, flags, startId); 
    Bundle bundle = intent.getExtras(); 
} 
+0

void returntype與參數不兼容! :( – Niki 2011-03-10 12:58:42

+0

'void'returntype與int參數不兼容!!! :( – Niki 2011-03-10 13:03:06

+1

@niki抱歉,它的int。你應該避免複製粘貼。真正的程序員類型代碼。然後他們解決錯誤。) – Reno 2011-03-10 13:43:58

2

當你創建一個意圖,你可以把數據給它相同的數據將與意向一起,當你啓動服務轉移。

Intent intent = new Intent(context, Class) ; 
intent.putExtra(key, value); 

startService(intent); 

在接收端獲取意圖並從中獲得額外的價值。

Bundle b = getIntent().getExtra(); 
b.get<ValueType>(key); 
+0

我cudn't在我的服務中找到getIntent()。 – Niki 2011-03-10 10:33:29

+0

如果接收部分是活動,您會發現getIntent()。在我的情況下,它的服務。 – Niki 2011-03-10 10:35:30

+0

@Niki,Bundle b = getIntent()。getExtra(); b.getXXX(鍵);將在接收服務類的onStart/onCreate方法內被調用。 – Vinay 2011-03-10 10:40:05

0

您可以覆蓋在服務onStartCommand(Intent intent, int flags, int startId)方法。

相關問題