
我想打印多行文本,而不删除上一行数据.
下面的代码是完美打印多行,但当应用程序保持睡眠和重新启动时.当GPS开启或关闭时,与先前数据一起打印一行.
帮我解决一下.
required Output:(after Restart the app)<< GPs Enabled At :2016/06/08 17.15.00>><< GPs Disabled At :2016/06/08 17.45.00>><< GPs Enabled At :2016/06/08 17.49.00>><< GPs Disabled At :2016/06/08 17.52.00>>Getting Output:(after Restart the app)<< GPs Enabled At :2016/06/08 17.15.00>><< GPs Disabled At :2016/06/08 17.45.00>><< GPs Enabled At :2016/06/08 17.49.00>><< GPs Disabled At :2016/06/08 17.52.00>><< GPs Disabled At :2016/06/08 17.52.00>><< GPs Disabled At :2016/06/08 17.52.00>>
日志文件的方法:
public voID Logmethod(String noramalStr,String Dateval) { /* Log Folder Text files Starts here*/ try { file newFolder = new file(Environment.getExternalStorageDirectory(),"GpsFolder"); if (!newFolder.exists()) { newFolder.mkdir(); } try { file file = new file(newFolder,"GPsstatus" + ".txt"); file.createNewfile(); /*Writing the Log in specific files*/ BuffereDWriter out; try { String separator1 = System.getProperty("line.separator"); fileOutputStream fOut = new fileOutputStream(new file(newFolder + "/GPsstatus.txt"),true); OutputStreamWriter osw = new OutputStreamWriter(fOut); osw.append("<< " + noramalStr +" : "+Dateval + " >>"); osw.append(separator1); // this will add new line ; osw.flush(); osw.close(); fOut.close(); Log.i(noramalStr," : "+Dateval); } catch (fileNotFoundException e) { e.printstacktrace(); } catch (IOException e) { e.printstacktrace(); } } catch (Exception ex) { System.out.println("ex: " + ex); } } catch (Exception e) { System.out.println("e: " + e); } }解决方法 如果有关删除日志文件的问题: 你总是做createNewfile尝试检查文件是否存在
public voID Logmethod(String noramalStr,String Dateval) { try { file newFolder = new file(Environment.getExternalStorageDirectory(),"GpsFolder"); boolean directoryExists = newFolder.exists(); Log.d(TAG," directoryExists = " + directoryExists); if (!directoryExists) { boolean dirCreate = newFolder.mkdir(); Log.d(TAG," dirCreate = " + dirCreate); } file file = new file(newFolder,"GPsstatus" + ".txt"); boolean fileExists = file.exists(); Log.d(TAG," fileExists = " + fileExists); if (!fileExists) { boolean fileCreateResult = file.createNewfile(); Log.d(TAG," fileCreateResult = " + fileCreateResult); } String separator1 = System.getProperty("line.separator"); fileOutputStream fOut = new fileOutputStream(new file(newFolder + "/GPsstatus.txt"),true); OutputStreamWriter osw = new OutputStreamWriter(fOut); osw.append("<< "); osw.append(noramalStr); osw.append(" : "); osw.append(Dateval); osw.append(" >>"); osw.append(separator1); // this will add new line ; osw.flush(); osw.close(); fOut.close(); Log.i(TAG," : " + Dateval); } catch (Exception e) { e.printstacktrace(); }} 如果是关于位置提供者的永久监听启用/禁用
看看How do I receive the system broadcast when GPS status has changed?
并在清单文件中使用接收器
<receiver androID:name=".GPStStatusReceiver"> <intent-filter> <action androID:name="androID.location.PROVIDERS_CHANGED" /> </intent-filter> </receiver>总结
以上是内存溢出为你收集整理的Android GPS启用/禁用时间保存在带有多条线的SDCARD内的文本文件中全部内容,希望文章能够帮你解决Android GPS启用/禁用时间保存在带有多条线的SDCARD内的文本文件中所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)