有没有什么方法可以通过它与生成意图的类进行通信并从扩展IntentService类的类发送它?

时间:2015-08-03 12:34:21

标签: java android android-intent broadcastreceiver android-intentservice

在构建我的应用程序时,我有一个类(类A),它扩展了另一个类,比如说B类。现在我从这个类创建一个intent并将这个意图传递给另一个类C,后者又扩展了IntentService。现在,问题是:我有什么方法可以与C班的A班进行交流。

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

1 个答案:

答案 0 :(得分:1)

我不熟悉IntentService。但每当我有另一个类做某事时,我通过LocalBroadcastManager返回其结果,这意味着从C类通过LocalBroadcastManager发回一个intent并通过注册到该broadcastet intent在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"));
   }