package com.campus.gomotion.service;
import android.app.Service;
import android.content.Intent;
import android.os.*;
import android.support.annotation.Nullable;
import android.util.Log;
import com.campus.gomotion.constant.WifiApInfo;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.FutureTask;
/**
* Author: zhong.zhou
* Date: 16/5/9
* Email: muxin_zg@163.com
*/
public class CommunicateService extends Service {
private final static String TAG = "CommunicateService";
private WifiApService wifiApService;
private ExecutorService executorService;
private ChannelListenerService channelListenerService;
private Handler handler; //可以让Activity传过来
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
wifiApService = new WifiApService(this);
executorService = Executors.newSingleThreadExecutor();
channelListenerService = new ChannelListenerService(WifiApInfo.SERVICE_SPORT, handler);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (wifiApService.createWifiAp(WifiApInfo.WIFI_AP_NAME, WifiApInfo.WIFI_AP_PASSWORD)) {
Log.v(TAG, "createWifiAp succeed");
executorService = Executors.newSingleThreadExecutor();
FutureTask<String> futureTask = new FutureTask<>(channelListenerService);
executorService.submit(futureTask);
executorService.shutdown();
} else {
Log.v(TAG, "createWifiAp failed");
}
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
channelListenerService.closeServerSocket();
if (wifiApService.isWifiApEnabled()) {
wifiApService.closeWifiAp();
}
super.onDestroy();
}
}