Я пытаюсь использовать sendOrderedBroadcast в своем приложении для Android.Android - sendOrderedBroadcast help
Я хочу, чтобы иметь возможность отправлять намерение из одного из моих приложений в другое, и затем я хочу получить данные из приложения, которое получает намерение, в данном случае логическое значение true или false.
Вот текущий код:
Intent i = new Intent();
i.setAction(GlobalData.PROPOSE_IN_DOMAIN_ROAM_INTENT);
i.putExtra("com.testnetworks.QCLEVEL", aProposedTheoreticalQoSLevel);
sendOrderedBroadcast(i, null, null, null, Activity.RESULT_OK, null, null);
ли это правильный способ добиться того, чего я хочу?
Если да, то что я использую в качестве параметра resultReceiver *? (3-й параметр)
И как я могу получить данные обратно из трансляции?
Я сделал быстрый google и не придумал ни одного примера, какой-либо помощи или примеров, которые были высоко оценены.
ОБНОВЛЕНО КОД:
sendOrderedBroadcast(i, null, domainBroadcast, null, Activity.RESULT_OK, null, null);
class DomainBroadcast extends BroadcastReceiver{
@Override
public void onReceive(Context arg0, Intent intent) {
String action = intent.getAction();
if(GlobalData.PROPOSE_IN_DOMAIN_ROAM_INTENT.equals(action)){
Log.d("BROADCAST", "Returning broadcast");
Bundle b = intent.getExtras();
Log.d("BROADCAST", "Returning broadcast " +
b.getInt("com.testnetworks.INT_TEST"));
}
}
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(GlobalData.PROPOSE_IN_DOMAIN_ROAM_INTENT.equals(action)){
Bundle b = intent.getExtras();
int testQCLevel = b.getInt("com.testnetworks.QCLEVEL");
switch(testQCLevel){
case 1:
Log.d("QCLevel ", "QCLevel = UNAVAILABLE");
break;
case 2:
Log.d("QCLevel ", "QCLevel = BELOWUSABILITY");
break;
case 3:
Log.d("QCLevel ", "QCLevel = VOICE");
break;
}
intent.putExtra("com.testnetworks.INT_TEST", 100);
}
Так согласно Док, я должен верните 100 обратно в приемник DomainBroadcast, но он всегда возвращается как 0.
Может ли кто-нибудь понять, почему?
** resultReceiver -. Ваш собственный BroadcastReceiver рассматривать в качестве конечного получателя вещания *
У вас есть два 'OnReceive()' методы выше. – JRL