新浪微博Anroid开发(二)
一、项目整体设计
android客户端的功能:
1、登录
2、获到关注的微博内容
3、查看一条微博
4、发表微博
5、我的资料
6、刷新
包括:UI,logic
二、设计思路
UI : 启动闪屏动画,登录Acitivity , MainActivity(显示关注微博),NewActivity(发表新微博),ShowActivity(查看一条微博),InfoActivity(我的资料)
项目采用MVC模式,UI层只做显示。logic中的类调用微博接口,获取数据,传递给UI进行刷新。
logic包设计的类:
1 、接口IWeiboActivity:
所有Activity继承Activity,实现IWeiboActivity接口,init方法完成初始化工作,refresh方法完成刷新(收到logic返回的消息后,进行UI的刷新)
package com.shaccp.logic;
publicinterface IWeiboActivity {
publicvoid init();
publicvoid refresh(Object... args);
}
publicinterface IWeiboActivity {
publicvoid init();
publicvoid refresh(Object... args);
}
2、Task类:
微博中所要执行的任务,以Task类来标识(taskId 任务标识ID,params 任务参数)
package com.shaccp.logic;
import java.util.Map;
publicclass Task {
privateint taskId;
private Map params;
publicstaticfinalint TASK_LOGIN =1;
publicstaticfinalint TASK_GET_TIMELINE =2;
publicstaticfinalint TASK_NEW_WEIBO =3;
//增加任务,只需要在此增加常量标识
public Task() {
super();
}
public Task(int taskId, Map params) {
super();
this.taskId = taskId;
this.params = params;
}
publicint getTaskId() {
return taskId;
}
publicvoid setTaskId(int taskId) {
this.taskId = taskId;
}
public Map getParams() {
return params;
}
publicvoid setParams(Map params) {
this.params = params;
}
}
import java.util.Map;
publicclass Task {
privateint taskId;
private Map params;
publicstaticfinalint TASK_LOGIN =1;
publicstaticfinalint TASK_GET_TIMELINE =2;
publicstaticfinalint TASK_NEW_WEIBO =3;
//增加任务,只需要在此增加常量标识
public Task() {
super();
}
public Task(int taskId, Map params) {
super();
this.taskId = taskId;
this.params = params;
}
publicint getTaskId() {
return taskId;
}
publicvoid setTaskId(int taskId) {
this.taskId = taskId;
}
public Map getParams() {
return params;
}
publicvoid setParams(Map params) {
this.params = params;
}
}
3、MainService 业务逻辑的执行,返回消息均在这个类中处理。
MainService接收UI传来的数据,执行任务,调用微博接口,实现功能,把执行的结果消息,返回给UI,进行UI刷新或跳转。
考虑到需到不断接收UI传来的需要执行的任务,如获取最新的网络数据,发表微博...
所以MainService设计成一个Service ,启动一个线程来不断接收UI传来的任务,进行处理。
public class MainService extends Service implements Runnable
类的成员:
publicstatic List<Activity> allActivity =new ArrayList<Activity>(); //保存运行的所有Activity,方便进行UI切换、跳转
publicstatic List<Task> allTask =new ArrayList<Task>(); //保存当前需要执行的任务
publicstatic List<Task> allTask =new ArrayList<Task>(); //保存当前需要执行的任务