android - 同一个函数在两个不同的活动中被调用两次
问题描述
我正在尝试在 android studio 中制作我的第一个应用程序,但我遇到了一个问题,我有 2 个活动,而且我都有
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
Log.e(TAG, "onWindowFocusChanged()");
if (hasFocus) {
hideSystemUI();
}
}
private void hideSystemUI() {
Log.e(TAG, "hideSystemUI()");
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE);
}
但是,当我将活动更改为另一个活动时,会从两个活动中调用该函数,我不想破坏活动。
我应该制作包含此代码的第三个活动,然后从最后两个活动中删除吗?
解决方案
这是一个非常非常普遍的问题!
一种解决方案是创建一个BaseActivity
包含共享代码的代码。然后,您的两个活动都可以扩展BaseActivity
以获得该功能。
如果您在扩展类方面需要更多帮助,这个答案涵盖了同样的问题。
推荐阅读
- angular - Socket.io:总是无效的命名空间
- python - How can I display and download an image which is located outside of the static folder?
- ios - 如何在 Swift 中确认对 Identifiable 协议的枚举?
- ios - AppCenter for iOS 上缺少符号
- javascript - 在Angular中单击编辑时内联编辑表格行
- java - 将 txt 文件的重复列添加到 Java 中的列表中
- excel - How to just identify (and not remove) duplicates in excel column?
- java - 如何在 GSON 中支持多语言(在 Json 和 Java 对象之间)?
- laravel - Laravel Artisan 命令的 PHPUnit 测试,无需在内部实例中调用外部 API(依赖注入)
- c# - SSIS中for循环下的脚本任务每个容器都需要大量时间才能完成