在应用程序启动时,在创建任何活动,服务或接收方对象(不包括内容提供程序)之前调用。
只要我记得并且许多应用程序依赖于此来初始化各种内容,这在实践中都是如此。但是,这种行为似乎随着最新的Android M预览(昨天发布)而改变。
首次安装并启动应用程序时,无法调用自定义Application
onCreate()
。相反,它会立即启动第一个Activity
。
这仅在第一次应用程序启动时发生。以下所有应用程序开始工作并按预期运行,并且在启动Application
之前调用自定义onCreate()
' Activity
。
BaseApplication
public class BaseApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Log.d("App", "Test: Application.onCreate()");
}
}
FirstActivity
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秒后再次启动它。
答案 0 :(得分:3)
根据官方问题跟踪器,已在Android 6.0的最终版本中修复此问题: https://code.google.com/p/android-developer-preview/issues/detail?id=2965