2013-12-06 2 views
0

Я пытаюсь прочитать данные, передаваемые методом sendBroadcast(). У меня есть этот код, написанный уже и я хочу представить message в TextViewПолучение данных от sendBroadcast()

message = incoming.readUTF(); 
String[] incomingTable = new String[5]; 
incomingTable[0] = message; 
incomingTable[1] = message; 
Intent actual = new Intent(EXTRA_MESSAGE); 
actual.putExtra("Message", String.format("%s", incomingTable[1])); 
getBaseContext().sendBroadcast(actual); 

То, что я хочу добиться: Я хочу, чтобы установить текст TextView в MainActivity для message строки. Что я должен сделать для этого?

+0

Просьба уточнить ваш вопрос. Вы отправляете 'массаж' в' BroadcastReceiver', но, если я понял, вы спрашиваете, как получить его в своей деятельности! – ramaral

+0

Код, который вы отправили в 'MainActivity'? – ramaral

+0

Нет. Это в 'public void run()' метод 'private class AcceptThread extends Thread' – Lisek

ответ

0

В MainActivity объявить и определить broadcatReceiver:

UpdTextViewReceiver updTextViewReceiver; 
public class UpdTextViewReceiver extends BroadcastReceiver{ 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     String action = intent.getAction(); 
     if(action.equalsIgnoreCase(EXTRA_MESSAGE)){ 
      String message = intent.getStringExtra("Message") 
      MainActivity.updateTextView(message); 
     } 
    } 

} 

private void updateTextView(String message){ 

    //Update the TextView here 
} 

Instantiate приемник в OnCreate:

updTextViewReceiver = new UpdTextViewReceiver(); 

Зарегистрируйте BoadcastReceiver в onResume

registerReceiver(updTextViewReceiver, new IntentFilter(EXTRA_MESSAGE)); 

Разрегистрируйте BoadcastReceiver в OnPause

unregisterReceiver(updTextViewReceiver); 

Done!

Смежные вопросы