国产探花免费观看_亚洲丰满少妇自慰呻吟_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); 

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 周宁县| 通河县| 饶阳县| 桃江县| 周至县| 阜新市| 陆良县| 鄂尔多斯市| 南郑县| 清丰县| 菏泽市| 芜湖县| 读书| 邛崃市| 进贤县| 蓬溪县| 宁晋县| 金沙县| 凉城县| 诸城市| 清远市| 灵台县| 唐山市| 蒙阴县| 峡江县| 即墨市| 竹溪县| 东平县| 永吉县| 保定市| 阆中市| 娱乐| 宜宾市| 永嘉县| 云浮市| 鹤山市| 安岳县| 凤山县| 策勒县| 施秉县| 龙游县|