最近沒有怎麼編碼,就把斷斷續續做了半年的畢業設計拿出來回顧一下。
校園助手,分為伺服器端與android客戶端,在此主要介紹客戶端,伺服器是一位大神用node.js寫的。
主要實現的功能有:登陸,資訊查詢,地圖,訂餐,網頁的呼叫與解析,主要費勁的就是介面。
public class mainservice extends service implements runnable
}).start();
super.oncreate();
} @override
public ibinder onbind(intent intent)
/*** 新增乙個activity物件
在每個activity啟動的時候就呼叫這個函式,將自己的引用加入到主服務,便於管理,更方便介面的更新
* @param activity
*/public static void addactivity(activity activity)
}} }
/*** 根據activity 的name 獲取activity物件
需要介面的引用時,就從列表獲取,很方便地得到介面的引用,從而更新介面
* @param name
* @return
*/private static activity getactivitybyname(string name) }}
} return null;
} /**
* 新建任務
介面需要執行耗時操作時,就呼叫此函式,將任務交給service執行,當執行完後就呼叫activity的引用來更新介面
* @param t
*/public static void newtask(task t)
/*** 主服務啟動後,一直從任務佇列中取出任務執行
*/public void run() }}
} // 處理任務
private void dotask(task t)
break;
} default:
break;
}// end of switch
handler.sendmessage(msg); }
/*** 非同步處理訊息
*/@suppresslint("handlerleak")
public static handler handler = new handler()
break;
}default:
break;
}//end of switch
//通過activity的引用呼叫相應介面的更新函式
activity.refresh(msg.obj);
};};
/*** 退出系統
退出系統時,很方便地清楚掉所有的activity
* @param context
*/// finish 所有的activity
if (!activity.isfinishing())
activity.finish();
} // 結束 service
intent service = new intent("cn.edu.wit.services.mainservice");
context.stopservice(service); }
}
這個主服務基本可以完全復用,根據需求新增一些內容即可。
再來看看介面這邊是如何搭建的
public class loginactivity extends activity implements iassistantactivity
@override
public void init()
//獲取所有使用者,新增到登陸框的下拉列表中
userinfoservices = new userinfoservices(loginactivity.this);
//獲取所用使用者
initdata();
initview();
// 把自己新增到activity集合裡面
mainservice.addactivity(this);
}/**
* 初始化介面
*/private void initview()
});//登入按鈕
btn_login = (button) findviewbyid(r.id.login_ok);
btn_login.setonclicklistener(new onclicklistener() else else }}
});//下拉列表顯示已登入過的使用者
ib_spinner = (imagebutton) findviewbyid(r.id.ib_spinner);
ib_spinner.setonclicklistener(new onclicklistener()
});}
//將耗時的操作封裝後交給主服務
private void newtask(userinfo loginuser) else
} /**
主服務處理完任務後,通過引用來呼叫此函式來達到更新介面的目的
* 更新登入介面,或登入成功後跳轉,或顯示錯誤資訊
*/@override
public void refresh(object... obj)
userinfo user = (userinfo)obj[0];
if (null == user.getusername() || "".equals(user.getusername())) else else if (1 == isremember)
this.finish();
}}else
}private void initdata()
system.out.println(users);
} }
//將已登入的使用者列表適配到下拉列表
class myadapter extends baseadapter
@override
public object getitem(int position)
@override
public long getitemid(int position)
@override
public view getview(final int position, view convertview,
viewgroup parent)
});delete.setonclicklistener(new onclicklistener()
});return view;
} }
private void showdialg()
progressdialog.setmessage("正在獲取資訊...");
progressdialog.show(); }
}
通過注釋應該能夠看清楚。
我是通過這個專案來學android的,所以這裡面沒有太多的android處理技巧,由於工作的原因,只是用以前的**,並沒有優化。當讓這樣也能讓自己看到慢慢成長的過程。
Vue框架簡介及入門
mvvm模式的資料驅動框架,資料驅動的思想,重點關注資料,運算元據就可以 print to console 寫在前面 vue 元件要以標籤的形式呈現為了符合 html html5的規則,所以元件的標籤化使用必須註冊 template 標籤 例項範圍內使用 template中的內容被當做乙個整體了,並...
路行助手無法使用 路行助手app
路行助手是可以讓使用者在軟體隨意的進行位置的修改,使用者可以使用軟體來完成許多的功能,不僅可以幫助使用者在手機中快速的進行打卡,使用者還可以輕鬆的將自己手機中的遊戲和軟體進行位置修改。路行助手介紹 1 簡單的就可以隨意的使用這款軟體了,使用者輕鬆的就能讓自己的位置資訊發生更改,不需要太複雜的操作就可...
python scrapy框架簡介及抓取流程
scrapy簡介 scrapy是乙個為了爬取 資料,提取結構性資料而編寫的應用框架。scrapycrawl則是在scrapy基礎上進一步處理資料的爬蟲框架 scrapy執行流程圖 scrapy主要包括了以下元件 引擎 scrapy 用來處理整個系統的資料流處理,觸發事務 框架核心 排程器 sched...