編輯:系統備份
使用內容提供者讀取短信內容,寫入XML文件,進度條ProgressDialog更新備份進度。
新知識點:子線程如何在在不使用Handler的情況下更新UI
/** * 進行短信備份的工具類,支持進度條顯示 * @author lian * */ public class SmsBackupUtils { private static class Data{ int progress; } /** * * @param context * 調用此工具類的Activity * @param pd * 顯示備份進度的進度條 */ public static void smsBackup(Activity context,final ProgressDialog pd){ Uri uri = Uri.parse("content://sms/"); ContentResolver cr = context.getContentResolver(); //取出短信 final Cursor cursor = cr.query(uri, new String[]{"address","date","body","type"}, null, null, null); final int count = cursor.getCount(); final Data data = new Data(); data.progress = 0; //存儲路徑 File file = new File(Environment.getExternalStorageDirectory(), "sms.xml"); try { FileOutputStream fos = new FileOutputStream(file); PrintWriter pw = new PrintWriter(fos); //按照XML格式進行寫入 pw.println("<smses count='" + cursor.getCount() +"'>"); //在主線程中更新UI context.runOnUiThread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub pd.setMax(count); pd.show(); } }); //寫入XML文件 while(cursor.moveToNext()){ data.progress ++; String address = cursor.getString(0); String date = cursor.getString(1); String body = cursor.getString(2); String type = cursor.getString(3); //SystemClock.sleep(150); pw.println("<sms>"); pw.println("<address>"+ address +"</address>"); pw.println("<date>"+ date +"</date>"); pw.println("<body>"+ body +"</body>"); pw.println("<type>"+ type +"</type>"); pw.println("</sms>"); context.runOnUiThread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub pd.setProgress(data.progress); } }); } pw.println("</smses>"); pw.flush(); pw.close(); cursor.close(); //備份完成,關閉進度條 context.runOnUiThread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub pd.dismiss(); } }); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
調用
pd = new ProgressDialog(this); pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); SmsBackupUtils.smsBackup(SuperToolActivity.this, pd);
以上就是本文的全部內容,希望對大家的學習有所幫助。
有時候我們使用微雲備份聯系人,會擔心失去聯系人,Contacts Backup是WP8/WP8.1平台上一款使用極其簡單的備份聯系人應用,它可以幫我們把聯系人保存到Exc
91手機助手內置的備份還原功能,除了能夠像一般的備份軟件那樣,備份聯系人、短信、通話記錄、日程以及音樂圖片等文件資料;它更加可以備份程序軟件、游戲以及系統設置等等一系列系
隨著智能手機早已深入普通用戶的生活,2~3線城市的用戶也逐漸從使用非智能機換成使用智能機。最近便遇見了這樣一個轉移通訊錄的需求。之前使用的手機型號是BBK K201,通信
EFS丟失將造成IMEI號變空,基帶丟失無信號(刷機無法解決)並且失去保修! 症狀:開機提示未插入SIM卡,使用*#06#提示imei串號為空,查看關於手機,顯示基帶未