助手APP 簡介及框架

2021-06-26 20:05:20 字數 3587 閱讀 9509

最近沒有怎麼編碼,就把斷斷續續做了半年的畢業設計拿出來回顧一下。

校園助手,分為伺服器端與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...