java - 有没有什么方法可以让我们与生成 Intent 并从扩展 IntentService 类的类发送 Intent 的类进行通信?

标签 java android android-intent broadcastreceiver android-intentservice

在构建我的应用程序时,我有一个类(类 A),它扩展了另一个类(例如类 B)。现在我从此类创建一个 Intent ,并将此 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

最佳答案

我对 IntentService 不熟悉。但是每当我让另一个类执行某些操作时,我都会通过 LocalBroadcastManager 返回其结果,这意味着从类 C 中,您通过 LocalBroadcastManager 发回一个 Intent ,并通过注册该广播 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"));
   }

关于java - 有没有什么方法可以让我们与生成 Intent 并从扩展 IntentService 类的类发送 Intent 的类进行通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31787402/

相关文章:

android - 限制 Android 摄像头

java - AOSP 拨号器应用程序在 Nexus 6p 上崩溃

Java/或 Android IP 隧道

java - 小猜谜游戏 GUI 在两个窗口中打开

使用 Ant 进行 Android 签名

android - 如何通知用户有关 Android 应用程序更新?

Android 照片应用分享 Intent

java - 没有符合条件的 bean,预期是单个匹配的 bean,但找到了 2 个

java - Infinispan 搜索索引错误 : LockedObtainFailedException

java - 有没有API可以克隆Android Market应用程序的行为?有可能吗?