2015-02-06 2 views
1

[Service.java]Как я могу использовать более одного вещания в действии?

Intent intent = new Intent(); 
intent.setAction("sample"); 
intent.putExtra("timer_real", hms); 
sendBroadcast(intent); 

[Activity.java]

public void onResume() { 
    super.onResume(); 
    IntentFilter filter = new IntentFilter(); 
    filter.addAction("sample"); 
    registerReceiver(sn_english, filter); 
} 

public void onPause() { 
    super.onPause(); 
    unregisterReceiver(sn_english); 
} 

BroadcastReceiver sn_english= new BroadcastReceiver() { 
    public void onReceive(Context context, Intent intent) { 


     String timer_real = intent.getStringExtra("timer_real"); 
     textTimer.setText(timer_real); 

    } 
}; 

Приведенный выше код является составным использовать транслируемых в Android деятельности.

Как вы можете видеть, мы посылаем BR в Servive.java, и получить его в Activity.java

К счастью, он работает обычно, но я хочу использовать еще один BR в этой деятельности.

Итак, как я могу это использовать? Второй - также отправить в Service.java и получить в Activity.java

ответ

3

Задайте другое действие для вашего намерения на втором sendBroadcast. Пример:

Intent intent = new Intent(); 
intent.setAction("second_intent); 
sendBroadcast(intent); 

Тогда вы можете зарегистрировать свою деятельность в этой новой акции:

IntentFilter filter = new IntentFilter(); 
filter.addAction("sample"); 
filter.addAction("second_intent"); 
registerReceiver(sn_english, filter); 

И в методе OnReceive(), просто сделать, если/еще на действии:

if(intent.getAction().equals("sample")) 
{ 
// first intent 
} 
else if(intent.getAction().equals("second_intent")) 
{ 
// second intent 
} 
Смежные вопросы