有没有办法在调用MainActivity的onCreate()
之前做一些事情?
我们想做一些初始化的事情,比如记录......
答案 0 :(得分:3)
首先创建一个用于记录目的的活动。并将其设置为启动器活动。然后在登录完成后从此活动启动主活动。
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
这应添加到清单中以将活动标记为启动器活动
答案 1 :(得分:3)
两个选项;
1。如果您的日志记录与即将开始的活动无关,则需要在第一个活动开始之前进行“一些”初始化,然后再继承android.app.Application
。这里的onCreate
方法几乎是应用程序启动时首先运行的方法。
例如,在我们的应用程序中,这是我们创建DI注入器的地方,或者决定应用程序是否需要创建数据库(“准备首次使用”)类型任务。
这似乎非常适合应用程序范围的日志记录子系统初始化...
2。如果失败了(如果你想在调用Activity的onCreate
方法之前准确记录)那么这是Aspects的经典用例。我们使用AspectJ出于类似的原因以及数据库事务管理。有关如何在Android构建系统中编织所需的代码,请参阅this blog entry。
答案 2 :(得分:1)
如果您参考活动生命周期,我怀疑是否可能。
但您可以创建一个服务或其他活动 在后台进行日志记录并将信息传递给您的主要活动!
答案 3 :(得分:0)
onCreate是第一个从活动中调用的方法...你可以在你的oncreate方法中显示你的加载屏幕设置正确的视图......
检查一下:Link
答案 4 :(得分:0)
您可以在“活动”中添加static initialization block。它将在每个进程中运行一次,第一次调用此Activity并在运行任何其他Activity方法之前。
如果您的初始化代码与此Activity无关,但与整个应用程序无关,那么最好的方法通常是创建一个延迟初始化的单例类,或者在某些情况下,可以将初始化代码添加到{{1}通过在继承Application.onCreate()
。
答案 5 :(得分:0)
您可以创建另一个活动并将其设置为启动器。并在那项活动中做你的事情。完成任务后,开始主要活动。