国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android實現支持進度條顯示的短信備份工具類

2020-01-02 06:59:26
字體:
來源:轉載
供稿:網友

使用內容提供者讀取短信內容,寫入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); 

以上就是本文的全部內容,希望對大家的學習有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蚌埠市| 二手房| 葫芦岛市| 永城市| 伽师县| 荣成市| 乌审旗| 筠连县| 岳普湖县| 报价| 武冈市| 台江县| 岳池县| 尤溪县| 浙江省| 察隅县| 平乐县| 阜宁县| 田东县| 翁源县| 孟津县| 玉环县| 横山县| 讷河市| 福清市| 屏山县| 金川县| 武穴市| 永川市| 宜都市| 温宿县| 铜川市| 宝清县| 噶尔县| 漠河县| 昌乐县| 浮梁县| 益阳市| 文登市| 昌乐县| 新绛县|