在startActivity之前自动调用一个方法

问题描述 投票:0回答:1

我想要一个 method(); 在每次调用 startActivity(intent); 因为我不能修改其他的依赖关系。

EDIT.我找到了一个叫AOP的东西,使用AspectJ。

我找到了一个叫AOP的东西,用AspectJ做的。

https:/medium.com@jdvpaspect-oriented-programming-in-android-159054d52757。

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

java android android-activity reflection android-source
1个回答
0
投票

调用这个 method()onCreate() 假设你没有使用任何旗帜,以 startActivity

解释。

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

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

EDIT:

使用一个辅助类 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) 的方法。如果你的方法需要一个上下文,将活动上下文传递给它。


0
投票
  1. 你可以在onCreate()方法中这样做,该方法在onStart()之前执行。或者,你可以在onCreate()方法中这样做。

  2. 使用静态方法并在startActiviy()之前运行。

© www.soinside.com 2019 - 2024. All rights reserved.