在我的Android應用程序中,我有一個類,它擴展android.app.Application
,並在其onCreate()
中綁定了一些服務,我的其他活動將在此應用程序中使用這些服務。何時調用Application的onCreate()方法?
另外我有一個BroadcastReceiver
它偵聽並接收C2DM消息。當應用程序未運行時,此接收器接收到消息時,它將激活一個顯示即將發生的消息的對話框,它將啓動我的應用程序的「活動」。
我的問題是,當我開始一個沒有任何與互動的活動時,我的的onCreate()
會被調用,因爲該應用程序的一個Activity已經啓動?
這裏是我的的定義和清單:
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>
是的,它的工作原理是,我還沒有看到其他別的... – atasoyh
我不unserstand爲什麼要擴展'Application'?你不應該延長'活動'嗎? – Caner
@LAS_VEGAS在我的其餘部分DefaultApplication中,我存儲了一些數據並定義了一些在應用範圍內使用的方法。我只把它的一部分複製到這裏。 –