CountService.java 2.4 KB
/*
 *  Copyright (c)  2017.  wugian
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 */

package com.xgimi.gimicinema.service;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
import com.gimi.common.cinema.model.Constant;
import com.gimi.common.cinema.model.MessageEvent;
import org.greenrobot.eventbus.EventBus;

import static com.gimi.common.cinema.model.Constant.count;

public class CountService extends Service {
    public static final String TAG = "CountService";
    public static final String STATUS_ACTION = "com.qnbar.count.service";
    public static final int COUNT_DOWN_ZERO = 0x801;
//    private int count = 0;

    @Override
    public IBinder onBind(Intent intent) {
        throw new NullPointerException();
    }


    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
//        count = intent.getIntExtra("countDown", 0);
        Log.d(TAG, "count is :" + count);
        if (Constant.count > 0) {
            Log.d(TAG, "if");
            new CountDownThread().start();
        } else {
            Log.d(TAG, "else");
            CountService.this.onDestroy();
        }
        return super.onStartCommand(intent, flags, startId);
    }

    class CountDownThread extends Thread {
        @Override
        public void run() {
            Log.d(TAG, "Polling...");
            //if true restart AskService polling
            if (count-- <= 1) {
                MessageEvent messageEvent = new MessageEvent();
                messageEvent.setEventId(COUNT_DOWN_ZERO);
                messageEvent.setMessage("记数为0");
                EventBus.getDefault().post(messageEvent);
                CountService.this.onDestroy();
            }
        }
    }

    @Override
    public void onDestroy() {
        Log.d(TAG, "Service:onDestroy");
        System.out.println("Service:onDestroy");
        super.onDestroy();
    }
}