1

私がやっていることは、一意の ID を持つさまざまな近接アラートを余分に追加することですが、機能していません -

        for (int i = 0; i < latArray.size(); i++) 
    {   

        Bundle extra = new Bundle();
        extra.putInt("UID", i);
        Intent intent = new Intent(IntentToFire);  
        intent.putExtra("Blob", extra);
        PendingIntent proximityIntent = PendingIntent.getBroadcast(this,-1 , intent, 0);
        LocationManager locationManager = 

        Log.i("Picture:","Location img:"+GetLocation.imgArray.get(i));
        Log.i("Potatoo:", "Lat :"+latArray.get(i)+" Lng :"+lngArray.get(i));
        locationManager.addProximityAlert(Double.valueOf(latArray.get(i)), Double.valueOf(lngArray.get(i)), radius,expiration,proximityIntent);
    }

そして、放送受信機にこのコードを入れています-

flag = intent.getBundleExtra("blob").getInt("UID");

フラグを印刷するたびに、エラーが発生します。アイデア?

4

1 に答える 1

4

FLAG_UPDATE_CURRENT を使用してみてください:

PendingIntent.getBroadcast(this,-1 , intent, PendingIntent.FLAG_UPDATE_CURRENT);

Intent保留中のインテントに含まれている近接アラートを使用して data-uri のデータをエンコードするのが最も簡単であることがわかりました。例:

geo:<lat>,<lon>?id=<your id>

ただし、独自のプロトコル部分を使用できます(geoGoogleマップAFAIKで使用されています)。私にはキャッシュの問題はありません(キャッシュされた/古い/間違ったPendingIntentを取得しているようです)。

于 2012-05-11T10:14:23.447 に答える