我需要在应用程序的开头实现非常具体的代码。
我的意思是,不是在活动的开始(onCreate()或onStart()),而是在应用程序的开头。
我有一个对我不利的解决方案,即有一个名为" MyBaseActivity"然后在我的所有活动中延伸。 这个解决方案对我不好,因为这个解决方案让我只能在每个活动的onCreate中执行一个特定的事情(我谈到的具体代码),这不是我想要的。
我希望每个活动能够根据onCreate()函数执行不同的操作,并且除了执行上面讨论过的特定代码之外。
因此,我需要访问应用程序的开头,或者你有另一个解决方案。
谢谢!
答案 0 :(得分:2)
在创建应用程序/包的进程时,Application class
或Application类的子类在任何其他类之前被实例化。
您需要扩展应用程序类。
public class AppApplication extends Application{
@Override
public void onCreate() {
super.onCreate();
//Do whatever you want
}
}
此AppApplication类应包含在清单文件中。
<application
android:allowBackup="true"
android:name=".AppApplication"
android:icon="@mipmap/ic_launcher"
答案 1 :(得分:1)
我需要在应用程序的开头实现非常具体的代码。
每当 Android “获取请求”启动任何应用组件时(活动,服务, BroadcastReceiver < / em>)并且您的应用尚未运行,它会分叉app_process
(又名zygote
),将其名称更改为 AndroidManifest.xml中定义的your.package.name
,初始化 Application 实例,调用其onCreate()
方法,然后实例化所请求的组件并调用其生命周期方法( Activity 的onCreate()
, 服务的onCreate()
或 BroadcastReceiver 的onReceive()
)。
只有Application
类的单个实例才会存在,直到应用程序进程终止。也就是说,您在extended Application
class中创建的任何类实例也将一直存在,直到应用程序进程被系统终止。