package com.app.biqoo.logic;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;
import android.app.Activity;
import android.app.Service;
import android.content.Intent;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import com.app.biqoo.bean.Task;
import com.app.biqoo.ui.IBiqooActivity;
public class MainService extends Service implements Runnable {
//任务队列
private static Queue<Task> tasks=new LinkedList<Task>();
private static ArrayList<Activity> appActivities =new ArrayList<Activity>();
//是否运行县城
private boolean isRun;
Handler handler=new Handler(){
public void handleMessage(android.os.Message msg){
switch (msg.what){
case Task.WELCOME:
//首页
IBiqooActivity activity =(IBiqooActivity)getActivityByName("WelcomeActivity");
activity.refresh();
break;
default :
break;
}
}
};
/*
* 根据Activity的Name获取Activity对象
*/
private Activity getActivityByName(String name){
if(!appActivities.isEmpty()){
for(Activity activity:appActivities){
if(null!=activity){
if(activity.getClass().getName().indexOf(name)>0){
return activity;
}
}
}
}
return null;
}
/*
* 添加一个Activity对象
*/
public static void addActivity(Activity activity){
appActivities.add(activity);
}
/*
* 添加任务到任务队列中
*/
public static void newTask(Task t){
tasks.add(t);
}
@Override
public void onCreate() {
// TODO 自动生成的方法存根
isRun=true;
Thread thread =new Thread(this);
thread.start();
super.onCreate();
}
@Override
public void run() {
// 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 void doTask(Task t){
Message msg=handler.obtainMessage();
msg.what=t.getTaskId();
switch (t.getTaskId()){
case Task.WELCOME:
System.out.println("doTask>>>>> welcome");
msg.obj="首页";
break;
default :
break;
}
handler.sendMessage(msg);
}
@Override
public IBinder onBind(Intent intent) {
// TODO 自动生成的方法存根
return null;
}
}
package com.app.biqoo.bean;
import java.util.Map;
public class Task {
//任务ID
private int taskId;
public static final int WELCOME = 0;
//参数
private Map<String,Object> taskParams;
public Task() {
super();
}
public Task(int taskId, Map<String, Object> taskParams) {
super();
this.taskId = taskId;
this.taskParams = taskParams;
}
public int getTaskId() {
return taskId;
}
public void setTaskId(int taskId) {
this.taskId = taskId;
}
public Map<String, Object> getTaskParams() {
return taskParams;
}
public void setTaskParams(Map<String, Object> taskParams) {
this.taskParams = taskParams;
}
}
package com.app.biqoo.ui;
public interface IBiqooActivity {
/*
* 初始化数据
*/
void init();
/* *
* 刷新UI
*/
void refresh();
}
来自于datou:https://github.com/datou-leo/ci