Yas*_*RIM 55 android application-lifecycle oncreate android-activity
在我的Android应用程序中,我有一个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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
清单看起来像这样:
<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>
Run Code Online (Sandbox Code Playgroud)
Pet*_*ego 44
只是第一次.
当Activity启动并且未加载应用程序时,onCreate()
将调用这两个方法.
但是对于随后的Activity启动,onCreate()
将不会调用应用程序.
Pau*_*est 14
请注意,如果任何服务被定义为在其他进程中运行,例如,android:process=
那么onCreate()
将再次为该进程调用Application .
例如,请参阅Android应用程序类方法onCreate被多次调用
归档时间: |
|
查看次数: |
57198 次 |
最近记录: |