2015-02-11 3 views
-1

мой ресивер не работает. Проблема находится между классом и активностью. им traying отправить сообщение от класса к деятельности, но не работают ... Класс собирается с два общается activies, по одному за раз ...Передача Android между классом и активностью

Моего Broadcast кода (в деятельности):

public class MainActivity extends Activity{ 

BroadcastReceiver receiver; 
IntentFilter filter; 

private void init() { 
     try { 

      ... 

      receiver = new BroadcastReceiver() { 

       @Override 
       public void onReceive(Context context, Intent intent) { 
        String action = intent.getAction(); 

        if(action.equals("HAS_CONECT")){ 
         progressBar.setVisibility(View.GONE); 
         Toast.makeText(getApplicationContext(), "IS CONECTED!", Toast.LENGTH_LONG).show(); 
        } 
        else if(action.equals("ARRIVES")){ 
         Toast.makeText(getApplicationContext(), "HAS ARRIVE!!!", Toast.LENGTH_LONG).show(); 
        } 
       } 

      }; 

      filter = new IntentFilter("HAS_CONECT"); 
      registerReceiver(receiver, filter); 
      filter = new IntentFilter("ARRIVES"); 
      registerReceiver(receiver, filter); 
     } catch (Exception e) { 
      System.out.println(e); 
     } 
    } 

... 
} 

И мой класс кода:

public void adviseActivity(){ 
    try { 
     Intent i = new Intent("MESSAGE"); 
     i.putExtra("msg", "DATA ARRIVE"); 
     i.setAction("ARRIVES"); 
     context.sendBroadcast(i); 

    } catch (Exception e) { 
     System.out.print(e); 
    } 
} 

ответ

0

проблема заключается в методе onReceive, вы ищете неправильное действие. Действие, которое вы установили, было MESSAGE, но действия, которые вы ищете onReceive, - HAS_CONECT и ARRIVES. Исправленный код:

  @Override 
      public void onReceive(Context context, Intent intent) { 
       String action = intent.getAction(); 

       if(action.equals("MESSAGE")){ 
        progressBar.setVisibility(View.GONE); 
        Toast.makeText(getApplicationContext(), "IS CONECTED!", Toast.LENGTH_LONG).show(); 
       } 
      } 
+0

СПАСИБО! Я думал, что это setAction («ПРИБЫТИЕ»); setAction Что такое функция? Как получить i.putExtrA ("msg", "A")? – user3240604

+0

'Пакет связок = intent.getExtras(); bundle.getString ("msg"); ' – Psypher

+0

спасибо, теперь у меня есть последняя проблема. У меня есть 5 видов деятельности, и мне приходится реплицировать трансляцию в каждом мероприятии ... Я не знаю, было ли это лучшим решением для общения в классе и активизации – user3240604

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