onCreate()
在调用 MainActivity之前有没有办法做一些事情?
我们想做一些初始化的东西,比如记录......
两种选择;
1. 如果您的日志记录与即将开始的活动无关,那么您需要在第一个活动开始之前进行“一些”初始化,然后是 subclass android.app.Application
。这里的onCreate
方法几乎是应用程序启动时运行的第一件事。
例如,在我们的应用程序中,这是我们创建 DI 注入器或决定应用程序是否需要创建数据库(“准备首次使用”)类型任务的地方。
这似乎非常适合应用程序范围的日志记录子系统初始化......
2. 如果做不到这一点(并且如果您想在调用 Activity 的方法之前精确记录onCreate
),那么这是 Aspects 的经典用例。我们使用 AspectJ 的原因与数据库事务管理类似。请参阅此博客条目,了解如何在 Android 构建系统中编织您需要的代码。
首先,您创建一个用于登录目的的活动。并将其设置为您的启动器活动。然后在登录完成后从该活动开始您的主要活动。
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
这应该添加到清单中以将活动标记为启动器活动
如果您提到活动生命周期,我怀疑这是可能的。
但是您可以创建在它之前启动的服务或其他活动。
在后台登录并将信息传递给您的主要活动!
onCreate 是第一个从活动中调用的方法...您可以显示您的加载屏幕,在您的 oncreate 方法中设置正确的视图.....
检查这个:链接
您可以将静态初始化块添加到您的活动。它将在每个进程中运行一次,即第一次调用此 Activity 时以及运行任何其他 Activity 方法之前。
如果您的初始化代码与此 Activity 无关,而是与整个应用程序相关,最好的方法通常是创建一个延迟初始化的单例类,或者在某些情况下,Application.onCreate()
通过在子类化后覆盖此方法来添加初始化代码可能是可以接受的Application
。
您可以创建另一个 Activity 并将其设置为启动器。并在该活动中做你的事情。完成任务后,开始主要活动。