Android:如何知道应用程序类中的组件类型?
我正在扩展应用程序类以满足额外的自定义需求。我在里面调用一个方法。作为预期的行为,它被调用用于Android组件的类型活动、服务、广播接收器等,但我也希望仅在活动中调用它。这是克服这个问题的其他方法吗Android:如何知道应用程序类中的组件类型?,android,Android,我正在扩展应用程序类以满足额外的自定义需求。我在里面调用一个方法。作为预期的行为,它被调用用于Android组件的类型活动、服务、广播接收器等,但我也希望仅在活动中调用它。这是克服这个问题的其他方法吗 public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); // the below method needs t
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// the below method needs to invoked only for service
// but now called for all application components
myCustomMethod();
}
....
}
但我也希望它只能在活动中调用
不行。如果应用程序的一个组件打开,应用程序实例将运行
您需要在另一个类中进行定制,并在desire组件的实例打开时打开它
但我也希望它只能在活动中调用
不行。如果应用程序的一个组件打开,应用程序实例将运行
您需要在另一个类中执行自定义操作,并在desire组件的实例打开时将其打开。只需将代码添加到入口点活动的onCreate方法中即可。如果您希望每个会话调用一次,请在共享首选项中添加两个int键,即app_launch_count和method_invoke_count。首先在应用程序的onCreate上递增,然后检查活动的onCreate中的第二个,如果第一个更大,则调用该方法:只需将代码添加到入口点活动的onCreate方法。如果您希望每个会话调用一次,请在共享首选项中添加两个int键,即app_launch_count和method_invoke_count。首先在应用程序的onCreate上递增,然后检查活动的onCreate中的第二个,如果第一个更大,则调用方法:将myCustomMethod移动到活动中。应用程序无法知道是什么触发了其进程的创建 或者,在应用程序上使用registerActivityLifecycleCallbacks注册ActivityLifecycleCallbacks对象,并将myCustomMethod逻辑放入onActivityCreated中。这需要14或更高版本。这将告诉您在流程实例化后创建每个活动的时间-如果您只关心第一个活动,则必须在onActivityCreated实现中注销回调。将myCustomMethod移动到活动中。应用程序无法知道是什么触发了其进程的创建
或者,在应用程序上使用registerActivityLifecycleCallbacks注册ActivityLifecycleCallbacks对象,并将myCustomMethod逻辑放入onActivityCreated中。这需要14或更高版本。这将告诉您在流程实例化后创建每个活动的时间-如果您只关心第一个活动,则必须在onActivityCreated实现中注销回调。有效的解决方法。但并非预期的解决方案。有效的解决方法。但这并不是预期的解决方案。