Android:如何在应用程序执行其他工作时持续保存传感器数据

我刚接触到android。 我正在开发一个应用程序,以持续保存传感器的数据,然后拍摄照片。 事实上,我想拍照时开始将加速度计数据保存到文件中,或者屏幕显示为黑屏。 我已达到这一点,我的应用程序在触摸按钮时保存传感器数据,但它只执行一次。 如何让它连续保存数据而不影响我的应用程序的其他部分运行? 我希望它保存数据,而我正在我的应用程序中拍照,当屏幕被遮挡,而我已经离开我的应用程序(例如应用程序暂停)

plz hlp thnx。

这是我的代码

private OnClickListener saveFun =new OnClickListener(){ @Override public void onClick(View arg0) { // TODO Auto-generated method stub try { File root = Environment.getExternalStorageDirectory(); if (root.canWrite()){ File f = new File(root, "test.txt"); FileWriter fw; if ( saveBtnCnt == 0){ fw = new FileWriter(f); saveBtnCnt = 1; } else{ fw = new FileWriter(f,true); } BufferedWriter out = new BufferedWriter(fw); c = Calendar.getInstance(); miliseconds = c.get(Calendar.MILLISECOND); seconds = c.get(Calendar.SECOND); minutes = c.get(Calendar.MINUTE); hour = c.get(Calendar.HOUR); day = c.get(Calendar.DAY_OF_MONTH); month = c.get(Calendar.MONTH)+1; year = c.get(Calendar.YEAR); out.write(year+"/"+month+"/"+day +"\n"+hour+":"+minutes+":"+seconds+"."+miliseconds+"\n"); out.write(currentX.getText()+"\n"); out.write(currentY.getText()+"\n"); out.write(currentZ.getText()+"\n"); out.close(); Toast.makeText(getBaseContext(), "File saved successfully!", Toast.LENGTH_SHORT).show(); } } catch (IOException e) { } } }; 

1)创建服务。

2)让服务监听传感器事件。

3)在服务中,创建一个线程。

4)在线程中,创建一个消息循环

5)当您获得传感器事件时,将它们发送到线程的消息循环。

6)让线程等待传入的事件。 当它看到一个时,将它附加到文件中。

7)当服务停止时,取消线程。 线程取消后,让它关闭文件。