欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android實(shí)現(xiàn)支持進(jìn)度條顯示的短信備份工具類

 更新時(shí)間:2021年08月19日 16:11:21   作者:C_L  
這篇文章主要介紹了Android實(shí)現(xiàn)支持進(jìn)度條顯示的短信備份工具類,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

使用內(nèi)容提供者讀取短信內(nèi)容,寫入XML文件,進(jìn)度條ProgressDialog更新備份進(jìn)度。

新知識(shí)點(diǎn):子線程如何在在不使用Handler的情況下更新UI

/** 
 *   進(jìn)行短信備份的工具類,支持進(jìn)度條顯示 
 * @author lian 
 * 
 */ 
 
public class SmsBackupUtils { 
  private static class Data{ 
    int progress; 
  } 
   
  /** 
   * 
   * @param context 
   *   調(diào)用此工具類的Activity 
   * @param pd 
   *   顯示備份進(jìn)度的進(jìn)度條 
   */ 
  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; 
     
    //存儲(chǔ)路徑 
    File file = new File(Environment.getExternalStorageDirectory(), "sms.xml"); 
    try { 
      FileOutputStream fos = new FileOutputStream(file); 
      PrintWriter pw = new PrintWriter(fos); 
       
      //按照XML格式進(jìn)行寫入 
      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(); 
      //備份完成,關(guān)閉進(jìn)度條 
      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(); 
    } 
     
     
  } 
} 

調(diào)用

pd = new ProgressDialog(this); 
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
 
SmsBackupUtils.smsBackup(SuperToolActivity.this, pd); 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。

相關(guān)文章

  • Android使用百度地圖出現(xiàn)閃退及定位時(shí)顯示藍(lán)屏問題的解決方法

    Android使用百度地圖出現(xiàn)閃退及定位時(shí)顯示藍(lán)屏問題的解決方法

    這篇文章主要介紹了Android使用百度地圖出現(xiàn)閃退及定位時(shí)顯示藍(lán)屏問題的解決方法,需要的朋友可以參考下
    2018-01-01
  • DataBinding onClick的七種點(diǎn)擊方式

    DataBinding onClick的七種點(diǎn)擊方式

    這篇文章主要給大家介紹了關(guān)于DataBinding onClick的七種點(diǎn)擊方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Android TextView實(shí)現(xiàn)帶鏈接文字事件監(jiān)聽的三種常用方式示例

    Android TextView實(shí)現(xiàn)帶鏈接文字事件監(jiān)聽的三種常用方式示例

    這篇文章主要介紹了Android TextView實(shí)現(xiàn)帶鏈接文字事件監(jiān)聽的方法,結(jié)合實(shí)例形式分析了鏈接跳轉(zhuǎn)、setMovementMethod及布局屬性設(shè)置三種常用的實(shí)現(xiàn)方式,需要的朋友可以參考下
    2017-08-08
  • android實(shí)現(xiàn)打地鼠游戲

    android實(shí)現(xiàn)打地鼠游戲

    這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)打地鼠游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 一款適用于Android平臺(tái)的俄羅斯方塊

    一款適用于Android平臺(tái)的俄羅斯方塊

    這篇文章主要為大家詳細(xì)介紹了一款適用于Android平臺(tái)的俄羅斯方塊,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Android框架Volley之利用Imageloader和NetWorkImageView加載圖片的方法

    Android框架Volley之利用Imageloader和NetWorkImageView加載圖片的方法

    這篇文章主要介紹了Android框架Volley之利用Imageloader和NetWorkImageView加載圖片的實(shí)現(xiàn)方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-05-05
  • Android Coil對(duì)比Glide深入分析探究

    Android Coil對(duì)比Glide深入分析探究

    這篇文章主要介紹了Android Coil對(duì)比Glide,Coil是Android上的一個(gè)全新的圖片加載框架,它的全名叫做coroutine image loader,即協(xié)程圖片加載庫(kù)
    2023-02-02
  • 使用VideoView播放App中的資源文件

    使用VideoView播放App中的資源文件

    這篇文章主要介紹了使用VideoView播放App中的資源文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • Android開發(fā)實(shí)現(xiàn)拍照功能的方法實(shí)例解析

    Android開發(fā)實(shí)現(xiàn)拍照功能的方法實(shí)例解析

    這篇文章主要介紹了Android開發(fā)實(shí)現(xiàn)拍照功能的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Android拍照功能的具體實(shí)現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10
  • Android Git submodule詳解用法示例

    Android Git submodule詳解用法示例

    項(xiàng)目中經(jīng)常會(huì)使用到第三方的 git 庫(kù), 將三方庫(kù)整合到項(xiàng)目中最簡(jiǎn)單的辦法就是復(fù)制粘貼, 但是如果這個(gè)庫(kù)升級(jí)了一個(gè)很酷炫的功能, 你要怎么整合進(jìn)來(lái)呢?(其實(shí)就是 git 版的包管理器)這就是本次要介紹的 git-submodule 操作, 直接把第三方的版本庫(kù)合并到自己的庫(kù)中
    2021-11-11

最新評(píng)論