2016-04-14 16 views
0

Ich versuche, einen Mehrwert zu senden Empfänger senden Ich bin immer Null-Wert zu bekommen. Kann mir jemand helfen, das zu beheben?Senden Wert broadcastReceiver Intent Filter

Hier ist, was ich versucht habe:

IntentFilter intentFilter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE); 
context.registerReceiver(downloadReceiver, intentFilter); 

Intent intent2 = new Intent("my.action.string"); 
intent2.putExtra("value", position); 
context.sendBroadcast(intent2); 

Und in meinem BroadcastReceiver:

private BroadcastReceiver downloadReceiver = new BroadcastReceiver() 
    { 
     public int value=5; 

     @Override 
     public void onReceive(Context arg0, Intent intent) 
     { 
      String action = intent.getAction(); 
      value = Integer.valueOf(intent.getExtras().getString("value")); 

      if(action.equals("android.intent.action.DOWNLOAD_COMPLETE")) 
      { 
       Log.e("Value","+ - "+value); 

       CheckDwnloadStatus(value); 
      } 

     } 
    }; 

Dank!

+0

Sie versuchen, den ' "Wert"' Extra als 'String' abzurufen. Ist "Position" eine "Schnur"? Es scheint, als wäre es ein numerischer Typ. –

+0

Ja. Es ist eine ganze Zahl. Daher konvertiere ich das in Ganzzahl, wenn ich es erhalte. –

+0

Sie müssen die 'getInt()' Methode anstelle der 'getString()' Methode verwenden. –

Antwort

0

position ist Ihre ganze Zahl ist. Wenn Sie eine ganze Zahl mit intent.putExtra() setzen, sollten Sie intent.getExtras().getInt() verwenden.

Grund: In intent.putExtra() wir nicht die Art angeben. Das System entscheidet, welche Art von Extra wir bestanden haben. Als position dafür Abrufen als Integer das System bekannt ist, müssen wir intent.getExtras().getInt() verwenden.

Verwandte Themen