packagecom.app.biqoo.logic;importjava.util.ArrayList;importjava.util.LinkedList;importjava.util.Queue;importandroid.app.Activity;importandroid.app.Service;importandroid.content.Intent;importandroid.os.Handler;importandroid.os.IBinder;importandroid.os.Message;importcom.app.biqoo.bean.Task;importcom.app.biqoo.ui.IBiqooActivity;public class MainService extends Service implementsRunnable {//任务队列
private static Queue tasks=new LinkedList();private static ArrayList appActivities =new ArrayList();//是否运行县城
private booleanisRun;
Handler handler=newHandler(){public voidhandleMessage(android.os.Message msg){switch(msg.what){caseTask.WELCOME://首页
IBiqooActivity activity=(IBiqooActivity)getActivityByName("WelcomeActivity");
activity.refresh();break;default:break;
}
}
};/** 根据Activity的Name获取Activity对象*/
privateActivity getActivityByName(String name){if(!appActivities.isEmpty()){for(Activity activity:appActivities){if(null!=activity){if(activity.getClass().getName().indexOf(name)>0){returnactivity;
}
}
}
}return null;
}/** 添加一个Activity对象*/
public static voidaddActivity(Activity activity){
appActivities.add(activity);
}/** 添加任务到任务队列中*/
public static voidnewTask(Task t){
tasks.add(t);
}
@Overridepublic voidonCreate() {//TODO 自动生成的方法存根
isRun=true;
Thread thread=new Thread(this);
thread.start();super.onCreate();
}
@Overridepublic voidrun() {//TODO 自动生成的方法存根
while(isRun){
Task task=null;if(!tasks.isEmpty()){
task=tasks.poll();//执行完任务后把任务从队列中移除
if(null!=task){
doTask(task);
}
}try{
Thread.sleep(1000);
}catch(Exception e) {//TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}//处理任务
private voiddoTask(Task t){
Message msg=handler.obtainMessage();
msg.what=t.getTaskId();switch(t.getTaskId()){caseTask.WELCOME:
System.out.println("doTask>>>>> welcome");
msg.obj="首页";break;default:break;
}
handler.sendMessage(msg);
}
@OverridepublicIBinder onBind(Intent intent) {//TODO 自动生成的方法存根
return null;
}
}packagecom.app.biqoo.bean;importjava.util.Map;public classTask {//任务ID
private inttaskId;public static final int WELCOME = 0;//参数
private MaptaskParams;publicTask() {super();
}public Task(int taskId, MaptaskParams) {super();this.taskId =taskId;this.taskParams =taskParams;
}public intgetTaskId() {returntaskId;
}public void setTaskId(inttaskId) {this.taskId =taskId;
}public MapgetTaskParams() {returntaskParams;
}public void setTaskParams(MaptaskParams) {this.taskParams =taskParams;
}
}packagecom.app.biqoo.ui;public interfaceIBiqooActivity {/** 初始化数据*/
voidinit();/**
* 刷新UI*/
voidrefresh();
}