Android activity 应用程序';是否调用s onCreate()方法?
在我的Android应用程序中,我有一个Android activity 应用程序';是否调用s onCreate()方法?,android-activity,oncreate,application-lifecycle,android,Android Activity,Oncreate,Application Lifecycle,Android,在我的Android应用程序中,我有一个DefaultApplication类,它扩展了Android.app.application,在它的onCreate()中,我绑定了一些服务,这些服务将被我在这个应用程序中的其他活动使用 我还有一个BroadcastReceiver,它监听和接收C2DM消息。当此接收器在应用程序未运行时收到消息时,它将启动一个对话框,显示即将到来的消息,并启动我的应用程序的活动 我的问题是,当我在没有与DefaultApplication进行任何交互的情况下启动活动时,
DefaultApplication
类,它扩展了Android.app.application
,在它的onCreate()
中,我绑定了一些服务,这些服务将被我在这个应用程序中的其他活动使用
我还有一个BroadcastReceiver
,它监听和接收C2DM消息。当此接收器在应用程序未运行时收到消息时,它将启动一个对话框,显示即将到来的消息,并启动我的应用程序的活动
我的问题是,当我在没有与DefaultApplication
进行任何交互的情况下启动活动时,我的DefaultApplication
的onCreate()
是否会因为该应用程序的活动已启动而被调用
以下是我的DefaultApplication
的定义和清单:
public class DefaultApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
doBindService();
}
void doBindService() {
// Establish a connection with the service. We use an explicit
// class name because we want a specific service implementation that
// we know will be running in our own process (and thus won't be
// supporting component replacement by other applications).
bindService(new Intent(DefaultApplication.this, SocketService.class),
socketServiceConnection, Context.BIND_AUTO_CREATE);
mIsBound = true;
}
void doUnbindService() {
if (mIsBound) {
// Detach our existing connection.
unbindService(socketServiceConnection);
mIsBound = false;
}
}
}
清单如下所示:
<application android:icon="@drawable/icon" android:label="@string/app_name"
android:name="com.mypackage.DefaultApplication"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:debuggable="true">
<service android:name="com.mypackage.services.SocketService"></service>
<activity android:name="TestActivity"
android:screenOrientation="landscape"></activity>
</application>
当调用
onCreate
时,您可以找到正式答案
在应用程序启动时,在任何活动、服务之前调用,
或接收器对象(不包括内容提供商)已创建。
实现应该尽可能快(例如使用lazy
状态初始化)自此函数中花费的时间
直接影响开始第一项活动的绩效,
过程中的服务或接收者。如果重写此方法,请执行以下操作:
一定要调用super.onCreate()
只是第一次
当活动启动且应用程序未加载时,将调用两个onCreate()
方法
但是对于后续的活动启动,将不会调用应用程序的
onCreate()
。请注意,如果任何服务被定义为在其他进程中运行,例如使用android:process=
,则该进程将再次调用应用程序的onCreate()
例如,请看是的,它可以这样工作,我还没有看到其他功能…我不明白为什么要扩展
应用程序
?您是否应该扩展活动
?@LAS_VEGAS在我的DefaultApplication的其余部分中,我存储了一些数据并定义了一些在应用程序范围内使用的方法。我只是把它的一部分复制到这里,严格来说不是真的。