android系统健康,简单的个人健康记录系统(Android+Web)

开发工具及环境:

Eclipse、SQL Server、JDK、JRE、Android SDK、ADT;

前期工作准备:

1.搭配Java开发环境;

2.配置Android开发环境;

3.在Eclipse里安装ADT插件;

开发的个人健康记录系统是个什么样子呢?A(病人)通过客户端将个人健康数据发送给服务器端上的B(医生),B查看信息后及时反馈一些医疗建议给A;在发送数据的同时,服务器将数据存入SQL数据库;客户端与JSP网站都可以对数据库进行操作。

1.客户端布局:

布局比较简单,整体用的ScrollView滚动视图来显示全部内容,除去文字用的TextView,剩下的是Button以一定间隔排列;Button左右都是图片,中间是文字。

67c5afe5189f12e633609da65536825b.png

用户点击不同的Button出现的窗口也不同,点击Filter时进行数据库内容筛选,可以选择显示一条记录里的某几项数据或者选择某个时段内的个人健康记录。

响应点击事件的代码如下:suggest7.setOnClickListener(new Button.OnClickListener() {

@Override

public void onClick(View arg0) {

// get prompts.xml view

LayoutInflater li = LayoutInflater.from(context);

View promptsView = li.inflate(R.layout.prompts6, null);

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(

context);

// set prompts.xml to alertdialog builder

alertDialogBuilder.setView(promptsView);

final EditText userInput = (EditText) promptsView

.findViewById(R.id.editTextDialogUserInput);

// set dialog message

alertDialogBuilder

.setCancelable(false)

.setPositiveButton("OK",

new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog,int id) {

// get user input and set it to result

// edit text

ed07_msg.setText(userInput.getText());

}

})

.setNegativeButton("Cancel",

new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog,int id) {

dialog.cancel();

}

});

// create alert dialog

AlertDialog alertDialog = alertDialogBuilder.create();

// show it

alertDialog.show();

}

});

51b17d9b12efff02b75463ccc9302f37.png

服务器网站:

网站布局上简单用了表格显示数据库查询的数据,数据筛选用了个时间控件;我的服务器代码与JSP网站是用的Eclipse的WEB项目完成的,servlet里写服务器代码,当访问网站时,根据URL-pattern映射关系调用servlet执行服务器代码;SQL数据库操作在JSP网页里(使用了JDBC,百度一下,数据库操作代码很简单的)。

9a2daf9c78101b85b7e3e41e02918ca5.png

Scoket通信:

Android 4.0之后,socket通信不能放在主线程中,需要新开一个子线程;

private Thread getThread = new Thread(){

@Override

public void run() {

try {

socket = new Socket(HOST, PORT);

in = new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF-8"));

out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(

socket.getOutputStream(),"UTF-8")), true);

while(true){

content=in.readLine();//一直接收socket通信数据

}

} catch (IOException ex) {

ex.printStackTrace();

ShowDialog("login exception" + ex.getMessage());

}

};

};

多线程技术:

开一个线程池,当一个手机客户端与服务器端连接时,将用户添加进链表存储并放入线程池;如此便实现一个服务器对应多个客户端进行socket通信,将用户存入链表也可以方便服务器对每个客户端进行遍历。

public void init() throws ServletException

{

new Thread() {

public void run()

{

try

{

ServerSocket server = new ServerSocket(1245);

mExecutorService = Executors.newCachedThreadPool(); //线程池

Socket socket = null;

while (true)

{

socket = server.accept();

SocketServer.mList.add(socket);

mExecutorService.execute(new SocketServer(socket));

}

}

catch (IOException ex)

{

System.out.println(ex.getMessage());

}

}

}.start();

}

发送与接收数据上的处理:

//发送

String msg = ed01_msg.getText().toString() +"@"

+ ed02_msg.getText().toString() +"@"

+ ed03_msg.getText().toString() +"@"

+ ed04_msg.getText().toString() +"@"

+ ed05_msg.getText().toString() +"@"

+ ed06_msg.getText().toString() +"@"

+ ed07_msg.getText().toString() +"@"

+ ed001_msg.getText().toString() +"@"

+ ed002_msg.getText().toString() +"@"

+ ed003_msg.getText().toString() +"@"

+ ed004_msg.getText().toString();

//接收

while(true) {

if((msg = in.readLine())!= null) {

date =SocketServer.msg.split("@",11);

msg1=date[0];

msg2=date[1];

msg3=date[2];

msg4=date[3];

msg5=date[4];

msg6=date[5];

msg7=date[6];

msg01=date[7];

msg02=date[8];

msg03=date[9];

msg04=date[10];

}



至此,简单的个人健康记录系统的基本流程叙述完了;这是我第一次写博客,写的不好请多多见谅;我的程序表达能力不是很好,希望通过写博客来慢慢加强自己的表达能力!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值