private static void Initview(Context context) { pd = new ProgressDialog(context); pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); pd.setMessage("正在备份数据"); pd.show(); }
File file = new File(Environment.getExternalStorageDirectory(), "backup.xml"); FileOutputStream fos = new FileOutputStream(file);
ContentResolver resolver = context.getContentResolver(); Uri uri = Uri.parse("content://sms/"); Cursor cursor = resolver.query(uri, new String[] { "body", "address", "type", "date" }, null, null, null);
XmlSerializer serializer = Xml.newSerializer(); // 初始化生成器 serializer.setOutput(fos, "utf-8"); serializer.startDocument("utf-8", true); serializer.startTag(null, "smss"); serializer.attribute(null, "max", max + ""); int process = 0; while (cursor.moveToNext()) { Thread.sleep(500); String body = cursor.getString(0); String address = cursor.getString(1); String type = cursor.getString(2); String date = cursor.getString(3); serializer.startTag(null, "sms"); serializer.startTag(null, "body"); serializer.text(body); serializer.endTag(null, "body"); serializer.startTag(null, "address"); serializer.text(address); serializer.endTag(null, "address"); serializer.startTag(null, "type"); serializer.text(type); serializer.endTag(null, "type"); serializer.startTag(null, "date"); serializer.text(date); serializer.endTag(null, "date"); serializer.endTag(null, "sms"); // 备份过程中,增加进度 process++; // pb.setProgress(process); pd.setProgress(process); } cursor.close(); serializer.endTag(null, "smss"); serializer.endDocument(); fos.close(); // pd.dismiss(); }
@Override public void onClick(View v) { try { SmsUtils.backupSms(this); Toast.makeText(SmsActivity.this, "备份成功", Toast.LENGTH_SHORT); } catch (Exception e) { Toast.makeText(SmsActivity.this, "备份失败", Toast.LENGTH_SHORT); e.printStackTrace(); } }