0

При создании моего приложения у меня есть класс (класс A), который расширяет другой класс, скажем, класс B. Теперь я создаю намерение этого класса и передаю это намерение другому классу C, который, в свою очередь, расширяет IntentService. Теперь возникает вопрос: Есть ли способ, с помощью которого я могу общаться обратно с классом А из класса C.Есть ли способ, с помощью которого мы можем связаться с классом, который сгенерировал намерение и отправил его из класса, который расширяет класс IntentService?

class A extends B 
{ 
    . 
    . 
    . 
    void method1() 
    { 
     Intent intent = new Intent(context, C.class); 
     context.startService(intent); 
    } 

    void method2(String param) 
    { 
     . 
     . 
     . 
    } 
} 

класс C.java выглядит следующим образом:

class C extends IntentService 
{ 
    @Override 
    protected void onHandleIntent(Intent intent) 
    { 
     // Need to call method2 of the same object from which intent was created in class A 
     // What should be done? 
    } 
} 

Я надеюсь, что я был в состоянии чтобы правильно объяснить вопрос. Пожалуйста, помогите мне с этим. TIA

+0

ли B продлить активность? – Simon

+0

@SimonMeier: ни один из классов не расширяет действие – Prateek

ответ

1

Я не знаком с IntentService. Но всякий раз, когда у меня был другой класс, я возвращал его результат через LocalBroadcastManager, что означает, что из класса C вы отправили намерение обратно через LocalBroadcastManager и получили его в A, зарегистрировавшись на это намерение вещательного агентства:

в C:

Intent intent = new Intent("SERVICE_FINISHED"); 
LocalBroadcastManager.getInstance(this).sendBroadcast(intent); 

в A:

public A() { 
     broadcastReceiver = new BroadcastReceiver() { 
      @Override 
      public void onReceive(Context context, Intent intent) { 
       if(intent.getAction().equals("SERVICE_FINISHED")) { 
       //do stuff} 
       } 
      } 
     }; 
     LocalBroadcastManager.getInstance(this).registerReceiver(broadcastReceiver, new IntentFilter("SERVICE_FINISHED")); 
    } 
Смежные вопросы