国家的文件Application#onCreate()
:
在应用程序启动时调用,在创建任何活动、服务或接收器对象(不包括内容提供者)之前调用。
从我记事起,这在实践中就是如此,许多应用程序都依赖于它来初始化各种东西。但是,随着最新的 Android M 预览版(昨天发布),这种行为似乎发生了变化。
首次安装和启动应用程序时,不会调用custom Application
。onCreate()
相反,它将Activity
立即启动第一个。
这只发生在第一次应用程序启动时。以下所有应用程序开始工作并按预期运行,并且Application
在onCreate()
启动Activity
.
代码示例
基础应用
public class BaseApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Log.d("App", "Test: Application.onCreate()");
}
}
第一活动
public class FirstActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("App", "Test: Activity.onCreate()");
}
}
应用清单
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="app.package.name" >
<application android:name=".application.BaseApplication" >
[...]
</application>
</manifest>
日志输出
下面的屏幕截图显示了从全新安装启动应用程序后的 Logcat 输出,然后在 8 秒后再次启动它。