|
|
|
@ -35,12 +35,27 @@ import java.io.FileOutputStream;
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
import java.io.PrintStream;
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
这段代码主要实现了备份手机便签的功能
|
|
|
|
|
这个备份手机便签的功能的主要思想是将手机上的便签及其相关信息导出到文本文件中,以实现备份和恢复的功能
|
|
|
|
|
具体来说,该功能会使用Android系统提供的内容提供器(ContentProvider)来获取手机上的便签数据,然后将这些数据格式化输出到文本文件中
|
|
|
|
|
用户可以在需要时将该文本文件拷贝到其他设备上,或者重新导入到手机中,以实现便签的备份和恢复。
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//单例对象是一种确保在应用程序中只有一个实例被创建的设计模式
|
|
|
|
|
//提供一种全局的访问方式
|
|
|
|
|
//这个类描述备份工具的属性和行为
|
|
|
|
|
public class BackupUtils {
|
|
|
|
|
// 声明一个常量 TAG,用于在日志中标识这个类
|
|
|
|
|
private static final String TAG = "BackupUtils";
|
|
|
|
|
// Singleton stuff
|
|
|
|
|
// 声明一个私有的静态变量 sInstance保存单例对象
|
|
|
|
|
private static BackupUtils sInstance;
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
如果单例对象是空的,创建一个新的实例
|
|
|
|
|
*/
|
|
|
|
|
public static synchronized BackupUtils getInstance(Context context) {
|
|
|
|
|
if (sInstance == null) {
|
|
|
|
|
sInstance = new BackupUtils(context);
|
|
|
|
@ -53,22 +68,26 @@ public class BackupUtils {
|
|
|
|
|
* status
|
|
|
|
|
*/
|
|
|
|
|
// Currently, the sdcard is not mounted
|
|
|
|
|
//SD卡没有挂载的状态码
|
|
|
|
|
public static final int STATE_SD_CARD_UNMOUONTED = 0;
|
|
|
|
|
//备份文件不存在的状态码
|
|
|
|
|
// The backup file not exist
|
|
|
|
|
public static final int STATE_BACKUP_FILE_NOT_EXIST = 1;
|
|
|
|
|
//数据格式不正确,可能被其他程序修改的状态码
|
|
|
|
|
// The data is not well formated, may be changed by other programs
|
|
|
|
|
public static final int STATE_DATA_DESTROIED = 2;
|
|
|
|
|
//运行异常导致恢复或者备份失败的状态码
|
|
|
|
|
// Some run-time exception which causes restore or backup fails
|
|
|
|
|
public static final int STATE_SYSTEM_ERROR = 3;
|
|
|
|
|
//运行异常导致恢复或者备份成功的状态码
|
|
|
|
|
// Backup or restore success
|
|
|
|
|
public static final int STATE_SUCCESS = 4;
|
|
|
|
|
|
|
|
|
|
//这个用于导出备份数据到文本文件
|
|
|
|
|
private TextExport mTextExport;
|
|
|
|
|
|
|
|
|
|
//获取
|
|
|
|
|
private BackupUtils(Context context) {
|
|
|
|
|
mTextExport = new TextExport(context);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static boolean externalStorageAvailable() {
|
|
|
|
|
return Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState());
|
|
|
|
|
}
|
|
|
|
|