gpt4 book ai didi

android - 注册 Activity 的事件

转载 作者:行者123 更新时间:2023-11-29 00:36:00 27 4
gpt4 key购买 nike

有没有办法注册 Activity 的事件?我对 onStart/onStop 事件特别感兴趣,我不想为此在 Activity 中添加特殊操作。

最佳答案

从其他 Activity 的生命周期中获取事件的一种方法是将您的类注册为 Application.ActivityLifecycleCallbacksApplication 实例并为 过滤事件>您感兴趣的 Activity

这是一个简短的示例(您可能想从 MainActivity.onCreate 以外的其他方法/类注册回调,否则您会错过该消息;)并且您可能在那里有一个依赖项你不想要)

关于您想监视的 Activity :

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// Register a spy for this activity
getApplication().registerActivityLifecycleCallbacks(new ActivitySpy(this));
}
}

然后 spy 代码看起来像这样:

public class ActivitySpy implements ActivityLifecycleCallbacks {

private final Activity mActivity;

public ActivitySpy(Activity activity) {
mActivity = activity;
}

@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
if (mActivity == activity)
Log.i("SPY", "Activity Created");
}

@Override
public void onActivityDestroyed(Activity activity) {
if (mActivity == activity)
Log.i("SPY", "Activity Destroyed");
}

// (...) Other overrides

}

如果您有对要关注的 Activity 的引用,您也可以从其他地方注册 spy 。

希望对您有所帮助:)

编辑:我忘了说,这只适用于API Level 14 及以上...

关于android - 注册 Activity 的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12652670/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com