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