如何访问应用程序的开始(不是 Activity)

How to access a start of Application (not Activity)

我需要在应用程序启动时实现非常具体的代码。

我的意思是,不是在 activity(onCreate() 或 onStart())的开始,而是在应用程序的开始。

我有一个对我不利的解决方案,即有一个名为 "MyBaseActivity" 的基础 activity,然后在我的所有活动中从它扩展。 这个方案对我来说不好,因为这个方案让我在每个activity的onCreate中只能做一件特定的事情activity(我讲的具体代码),这不是我想要的。

我希望每个 activity 能够根据他们的 onCreate() 函数做不同的事情,并且除了做我上面谈到的特定代码。

因此,我需要访问应用程序的启动,或者您有其他解决方案。

谢谢!

I need to implement very specific code in the start of the application.

每次 Android "gets a request" 启动您的任何应用程序组件时(Activity, Service, BroadcastReceiver) 而你的应用还不是 运行,它分叉了 app_process (a.k.a zygote),将其名称更改为 AndroidManifest.xml 中定义的 your.package.name,初始化一个 Application实例,调用它的onCreate()方法,然后实例化请求的组件并调用它的生命周期方法(ActivityonCreate() ServiceonCreate()BroadcastReceiveronReceive()).

只有一个 Application class 的实例存在,直到应用进程结束。也就是说,您在 extended Application class 中创建的任何 class 个实例也将一直存在,直到应用程序进程被系统终止。

示例:Understanding the Android Application Class

当您的 application/package 的进程是创建。 您需要扩展应用程序 class.

public class AppApplication extends Application{
 @Override
    public void onCreate() {
        super.onCreate();
        //Do whatever you want 
    }
}

并且这个 AppApplication class 应该包含在清单文件中。

<application
        android:allowBackup="true"
        android:name=".AppApplication"
        android:icon="@mipmap/ic_launcher"