1

fetchUpdatesMyApplication 应用程序类有一个监听器,它在调用方法时通知事件监听器(MainActivity - 片段活动) 。

设置(仅显示相关部分):

(1) 我的应用程序

public class MyApplication extends Application {

   OnFetchStartListener mCallbackFetchStart = null;

   public void setOnFetchStartListener(Activity activity) {
       try {
           mCallbackFetchStart = (OnFetchStartListener) activity;
       } catch (ClassCastException e) {
           throw new ClassCastException(activity.toString()
                    + " must implement OnFetchStartListener");
       }
   }

   public interface OnFetchStartListener {
       public void onFetchStartListener();
   }

   public synchronized void fetchUpdates() {
       // Informing listeners on fetchUpdates() start
       if (mCallbackFetchStart != null) {
           mCallbackFetchStart.onFetchStartListener();
       }
       String[] mURLs = getURLs();
       new DownloadDataAsyncTask().execute(mURLs[0], mURLs[1]);
   }
}

(2) MainActivity - FragmentActivity:

 public class MainActivity extends SherlockFragmentActivity implements
      MyApplication.OnFetchStartListener

   static MyApplication myApp;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      myApp = (MyApplication) getApplication();
   }

   @Override
   protected void onResume() {
      myApp.setOnFetchStartListener(this);
      super.onResume();
   }

   @Override
   public void onFetchStartListener() {
      //Some stuff
   }
}

问题

如何在应用程序类中设置监听器以通知多个事件监听器?事件侦听器可能属于不同的类,而不仅仅是 FragmentActivities。

我可以在应用程序类中创建不同的侦听器以在调用时通知不同的事件侦听器(应用程序类中的每个事件侦听器的侦听器) fetchUpdates,但这并没有让我觉得非常有效。

关于我

我刚开始编程。非常感谢详细的解释。

进步

Rciovati建议使用EventBus。此解决方案可能有效,但必须在项目中引入一个新的(第三方)库。

我仍在寻找无需使用第三方库的解决方案。

4

0 回答 0