onCreate方法是否调用任何监听器 - Android

3

我正在创建一个Android库,在其中我想要找出主应用程序的OnCreate方法是否正在运行?我不知道OnCreate是否会触发任何监听器。有人知道吗?有什么想法?谢谢。


我不确定你在问什么问题... - Alex Lockwood
我需要监视由OnCreate()方法创建的任何侦听器。 - Chris
我认为你之前的回答是正确的,能否请你解释一下你之前写给Alex的答案?谢谢。 - Chris
好的,我已经恢复了它...一开始我以为我误解了你的问题,但现在看来并不是这样。关于“是否有任何侦听器被触发”,我不是100%确定你的意思,但你可以查看源代码自己看看。 :) - Alex Lockwood
1个回答

1

没有这个回调函数。

大多数库引入此回调的方式是通过创建一个基础类型,要求另一个应用程序进行回调。例如,您可以让您的库执行以下操作:

public class MyLibBaseApplication extends Application {

   public void onCreate() {
      super.onCreate();
      // my callback stuff.
   }
}

然后要求您库的所有用户在其清单中将Application对象使用或扩展为Application类。虽然有一些库可以这样做,但这种方式对开发人员来说有点糟糕。它会阻止您使用具有相同模式的多个库(非常烦人)。

就我个人而言,我认为只需向使用库的人请求回调可能更好,无论是从客户端还是从开发人员的角度来看。

只需一个简单的调用或静态函数,例如:

public class MyApplication extends Application {

    public void onCreate() {
       super.onCreate();
       //register
       YourLibrary.onCreateFired(this);
       // or istantiate and register
       YourLibraryCallback cb = new YourLibraryCallback(this);
       cb.onCreateFired();
    }
}

我认为这种方式提供了最大的灵活性。

我同意关于“对用户来说这很糟糕”的部分...特别是如果用户需要扩展Application以满足其他需求(因为只能有一个Application子类)。 - Alex Lockwood
我不会点名,但那些库的开发人员知道他们是谁 ;) - Greg Giacovelli
我不希望用户在他们的代码中显式地注册到我的库,我希望通过任何监听器自动获取它。有没有这样做的方法? - Chris
不,开发人员的应用程序处于控制地位,而不是相反。 - Greg Giacovelli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接