首页 > 解决方案 > 自动调用startActivity前的方法

问题描述

我希望method();在每次调用startActivity(intent);整个项目之前自动调用 a ,因为我无法修改其他依赖项。

编辑:

我使用 AspectJ 发现了一个叫做 AOP 的东西

https://medium.com/@jdvp/aspect-orienting-programming-in-android-159054d52757

但我只能拦截我自己的应用程序方法,而不是固件 startActivity()

标签: javaandroidandroid-activityreflectionandroid-source

解决方案


假设您没有使用任何标志来method()调用它onCreate()startActivity

解释:

每当一个活动开始时,按顺序排列的活动生命周期是

onCreate()-> onStart()->onResume()

编辑:

使用帮助类AppUtils.java

public class AppUtils {

    public static void startActivity(Activity activity, Intent intent) {
        method(); // your method, you can put it inside AppUtils
        activity.startActivity(intent);
    }
}

然后只需AppUtils.startActivity(intent)从项目中的任何位置调用。如果您的方法需要上下文,请将活动上下文传递给它。


推荐阅读