一、编写SharedPreferenceUtil类(读写操作)、定义一个Static的nowUser作为当前用户,在MainService和LoginActivivty中都要创建
二、在Login页面init()之前判断,是否含有文件
Intent service=new Intent(this,MainService.class); //开启service
startService(service);
MainService.newActivity(this); //将本活动加入到活动集合中
nowUser= SharedPreferenceUtil.getLoginUser(getApplicationContext());
if(nowUser!=null){
//跳转
Intent intent=new Intent(LoginActivity.this,HomeActivity.class); //有直接跳转到主页面
startActivity(intent);
}else{
init();
}
三、获取ListView上点击的当前对象
*********************** public static UserInfo userInfo;
view = LayoutInflater.from(context).inflate(R.layout.user_selected_templete, null);//加载布局文件,返回v对象
// ImageView img_head= (ImageView) view.findViewById(R.id.img_user_head);//创建实例对象
TextView text_name = (TextView) view.findViewById(R.id.text_user_name);
******************* userInfo = userInfos.get(position);//获取某个用户,这里才有获取某个单独用户的例子
// img_head.setImageDrawable(userInfo.getUserIcon());//setImageDrawable是img_head自己独有的
text_name.setText(userInfo.getUserId());//在Adapter中设置用户的ID
//上面还没有获取用户的头像,姓名
四、在TextView的中获取nowUser对象
TextView text_name = (TextView) view.findViewById(R.id.text_user_name);//listview中text控件的实例对象
textViewUserId.setText(text_name.getText());
************** nowUser=UserAdapter.userInfo;//从适配器中获取当前用户对象
dialog.dismiss();
五、在登录按钮中,创建一个Task对象,放入操作的case和当前用户,然后让MainService执行,页面登录操作
SharedPreferenceUtil.saveLoginUser(this,nowUser);//保存登录信息
Map<String ,Object> taskParams=new HashMap<String, Object>() ; // 创建HashMap用于存放task要的参数
taskParams.put("user",nowUser);//将现在登录的用户保存到taskparams中
Task task=new Task(Task.WEIBO_LOGIN,taskParams);
MainService.newTask(task); //加入任务
六、在doTask中获取当前用户nowuser,并且对微博进行授权、MainService中的操作就是在Handler中处理,实现刷新UI,调用refresh()方法,实现页面跳转
//doTask(Task t)处理业务逻辑
private void doTask(Task t){
// 尽量使用 Message msg = handler.obtainMessage();的形式创建Message.msg.obj = result1; //msg.obj=?从这里把你想传递的数据放进去就行了
Message msg=handler.obtainMessage();
msg.what=t.getTaskId();
switch (t.getTaskId()){
case Task.WEIBO_LOGIN:
nowUser= (UserInfo) t.getTaskParams().get("user");
weibo.setToken(nowUser.getToken(),nowUser.getTokenSecret());
break;
default:
break;
}
handler.sendMessage(msg);
}
//异步处理
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case Task.WEIBO_LOGIN: //用户登录
//跟新UI
Log.d("使用了Service","---------------------->");
IWeiBoActivity activity= (IWeiBoActivity) getActivityByName("LoginActivity");//根据活动名,获取当前活动对象
activity.refresh(msg.obj);
break;
default:
break;
}
}
};
最后、LoginActivity中的refresh()方法
@Override
public void refresh(Object...params) { //Object...params相当于长度可变的对象数组
//在这里执行相应的UI操作,setText(params[0].toString())
Intent intent=new Intent(LoginActivity.this,HomeActivity.class);
startActivity(intent);
}
二、在Login页面init()之前判断,是否含有文件
Intent service=new Intent(this,MainService.class); //开启service
startService(service);
MainService.newActivity(this); //将本活动加入到活动集合中
nowUser= SharedPreferenceUtil.getLoginUser(getApplicationContext());
if(nowUser!=null){
//跳转
Intent intent=new Intent(LoginActivity.this,HomeActivity.class); //有直接跳转到主页面
startActivity(intent);
}else{
init();
}
三、获取ListView上点击的当前对象
*********************** public static UserInfo userInfo;
view = LayoutInflater.from(context).inflate(R.layout.user_selected_templete, null);//加载布局文件,返回v对象
// ImageView img_head= (ImageView) view.findViewById(R.id.img_user_head);//创建实例对象
TextView text_name = (TextView) view.findViewById(R.id.text_user_name);
******************* userInfo = userInfos.get(position);//获取某个用户,这里才有获取某个单独用户的例子
// img_head.setImageDrawable(userInfo.getUserIcon());//setImageDrawable是img_head自己独有的
text_name.setText(userInfo.getUserId());//在Adapter中设置用户的ID
//上面还没有获取用户的头像,姓名
四、在TextView的中获取nowUser对象
TextView text_name = (TextView) view.findViewById(R.id.text_user_name);//listview中text控件的实例对象
textViewUserId.setText(text_name.getText());
************** nowUser=UserAdapter.userInfo;//从适配器中获取当前用户对象
dialog.dismiss();
五、在登录按钮中,创建一个Task对象,放入操作的case和当前用户,然后让MainService执行,页面登录操作
SharedPreferenceUtil.saveLoginUser(this,nowUser);//保存登录信息
Map<String ,Object> taskParams=new HashMap<String, Object>() ; // 创建HashMap用于存放task要的参数
taskParams.put("user",nowUser);//将现在登录的用户保存到taskparams中
Task task=new Task(Task.WEIBO_LOGIN,taskParams);
MainService.newTask(task); //加入任务
六、在doTask中获取当前用户nowuser,并且对微博进行授权、MainService中的操作就是在Handler中处理,实现刷新UI,调用refresh()方法,实现页面跳转
//doTask(Task t)处理业务逻辑
private void doTask(Task t){
// 尽量使用 Message msg = handler.obtainMessage();的形式创建Message.msg.obj = result1; //msg.obj=?从这里把你想传递的数据放进去就行了
Message msg=handler.obtainMessage();
msg.what=t.getTaskId();
switch (t.getTaskId()){
case Task.WEIBO_LOGIN:
nowUser= (UserInfo) t.getTaskParams().get("user");
weibo.setToken(nowUser.getToken(),nowUser.getTokenSecret());
break;
default:
break;
}
handler.sendMessage(msg);
}
//异步处理
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case Task.WEIBO_LOGIN: //用户登录
//跟新UI
Log.d("使用了Service","---------------------->");
IWeiBoActivity activity= (IWeiBoActivity) getActivityByName("LoginActivity");//根据活动名,获取当前活动对象
activity.refresh(msg.obj);
break;
default:
break;
}
}
};
最后、LoginActivity中的refresh()方法
@Override
public void refresh(Object...params) { //Object...params相当于长度可变的对象数组
//在这里执行相应的UI操作,setText(params[0].toString())
Intent intent=new Intent(LoginActivity.this,HomeActivity.class);
startActivity(intent);
}