1f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu/* 2f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu * Copyright (C) 2013 The Android Open Source Project 3f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu * 4f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu * Licensed under the Apache License, Version 2.0 (the "License"); 5f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu * you may not use this file except in compliance with the License. 6f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu * You may obtain a copy of the License at 7f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu * 8f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu * http://www.apache.org/licenses/LICENSE-2.0 9f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu * 10f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu * Unless required by applicable law or agreed to in writing, software 11f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu * distributed under the License is distributed on an "AS IS" BASIS, 12f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu * See the License for the specific language governing permissions and 14f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu * limitations under the License. 15f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu */ 16f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu 17f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhupackage com.android.testing.alarmservice; 18f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu 19f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhuimport android.app.Service; 20f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhuimport android.content.Context; 21f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhuimport android.content.Intent; 22f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhuimport android.os.IBinder; 23f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu 24f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhupublic class AlarmService extends Service { 25f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu 26f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu private AlarmImpl mAlarmImpl = null; 27f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu static Context sContext; 28f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu 29f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu @Override 30f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu public void onCreate() { 31f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu super.onCreate(); 32f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu sContext = this; 33f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu } 34f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu 35f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu @Override 36f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu public IBinder onBind(Intent intent) { 37f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu return getAlarmImpl(); 38f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu } 39f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu 40f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu private AlarmImpl getAlarmImpl() { 41f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu if (mAlarmImpl == null) { 42f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu mAlarmImpl = new AlarmImpl(this); 43f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu } 44f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu return mAlarmImpl; 45f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu } 46f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu 47f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu @Override 48f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu public void onDestroy() { 49f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu sContext = null; 50f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu super.onDestroy(); 51f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu } 52f1d5e45695db9f88c440fd10ccb1d83c1f9e5faaGuang Zhu} 53