Android:如何知道Application类中的组件类型?

时间:2015-07-29 15:59:00

标签: android

我正在扩展Application课程以满足我的额外自定义需求。而我正在调用一种方法。作为预期的行为,它会针对Android组件的类型(ActivityServiceBroadcast receiver等进行调用,但我希望仅在{{1}上调用它}。这是解决这个问题的其他方法吗?

Activity

3 个答案:

答案 0 :(得分:2)

  

但是我希望它也只能在Activity上调用。

无法完成。如果您的应用程序的一个组件已打开,则将运行Application实例。

您需要在另一个类中执行自定义的操作,并在需要组件的实例打开时打开它。

答案 1 :(得分:2)

只需将您的代码添加到入口点活动的onCreate方法即可。如果您希望每个会话调用一次 - 将两个int键添加到共享首选项 - app_launch_count和method_invoke_count。首先在App的onCreate上增加,然后检查Activity的onCreate中的第二个,如果first first则调用该方法:)

答案 2 :(得分:2)

myCustomMethod()移至活动中。 Application无法知道触发创建过程的原因。

或者,使用registerActivityLifecycleCallbacks()上的Application注册ActivityLifecycleCallbacks个对象,并将myCustomMethod()逻辑放入onActivityCreated()。这需要minSdkVersion为14或更高。这将告诉您在实例化过程后创建每个活动的时间 - 如果您只关心第一个活动,则必须取消注册onActivityCreated()实施中的回调。