2013-09-27 77 views
-2

我一直鉤在一個事件(用BroacastReceiver),並從文檔(http://developer.android.com/reference/android/net/ConnectivityManager.html)我應該得到的特定對象「作爲一個額外的」:如何從意圖中讀取「額外」?

The NetworkInfo for the affected network is sent as an extra

the NetworkInfo for the new network is also passed as an extra.

我的問題是:在我的廣播接收器,我有這個事件觸發:

public void onReceive(Context context, Intent intent) {

而據我的理解,我應該能夠得到這兩個'額外'出於意圖?

我該怎麼做?我試着在mouseover上以調試模式檢查Eclipse中的intent對象(我在Eclipse中很新,所以我不知道任何其他方式在運行時檢查變量),但沒有給我太多的信息....

回答

1
public void onReceive(Context context, Intent intent) { 
    int i = intent.getExtras().getInt("keyName"); 
    String s = intent.getExtras().getString("keyName"); 

... 
+0

爲的NetworkInfo的關鍵應該是'ConnectivityManager.EXTRA_NETWORK_INFO' – Day

+0

我怎樣才能類型'NetworkInfo',的對象有沒有'getNetworkInfo()'? – Michel

+0

您無法在意圖中傳遞任何想要的對象類型,它僅限於字符串雙精度整數...,而不是您的類型 – Turkish

1

你可以這樣做:

public void onReceive(Context context, Intent intent) { 

    int id = intent.getExtra.getInt("id"); 
    String name = intent.getExtra.getString("name"); 

    ....... 
} 

你可以得到額外的任何數據類型的意圖。對於可以使用意向檢索的數據類型列表,請訪問INTENT

1

它取決於您要從意圖檢索的數據的類型。例如,如果它是一個intboolean你使用:

Bundle extras = intent.getExtras(); 
int exampleInt = extras.getInt('Name of the extra corresponding to that variable'); 
boolean exampleBoolean = extras.getBoolean('Name of this other extra');