я использую этот вид установки для моих передач:предотвратить прием передач несколько раз
IntentFilter filter = new IntentFilter("com.commonsware.cwac.tlv.demo.onlineDbResult");
filter.addCategory(INTENT_CATEGORY);
ResultReceiver receiver= new ResultReceiver();
registerReceiver(receiver, filter);
И назвать приемник:
Intent resultIntent = new Intent("com.commonsware.cwac.tlv.demo.onlineDbResult");
if(categories!=null){
for(String category:categories){
resultIntent.addCategory(category);
Log.d(TAG,"add category "+category);
}
}
Как-приемник зарегистрирован таким образом получает намерение несколько раз (2 или три раза), почему это?
com.commonsware.cwac.tlv.demo - это пространство имен, onlineDbResult - это просто добавленная строка, не являющаяся классом или чем-то еще.
OnReceive:
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
String result = extras.getString("result");
Log.d("baby","Register received result "+result);
if(progressDialog!=null)
progressDialog.dismiss();
if(result.equals("user_added")){
do stuff
Рекомендованный подход заключается в том, чтобы использовать только действия при отправке и на принимающей стороне, если фильтр принимает несколько действий, если это необходимо? Я добавил onreceive. Рекомендуемая практика - проверить действие, а не дополнительный «результат», который я сделал? –