gpt4 book ai didi

Android实现支持进度条显示的短信备份工具类

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Android实现支持进度条显示的短信备份工具类由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

使用内容提供者读取短信内容,写入xml文件,进度条progressdialog更新备份进度。 新知识点:子线程如何在在不使用handler的情况下更新ui 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
/**
  *   进行短信备份的工具类,支持进度条显示
  * @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();
     }
     
     
   }
}

调用 。

?
1
2
3
4
pd = new progressdialog( this );
pd.setprogressstyle(progressdialog.style_horizontal);
 
smsbackuputils.smsbackup(supertoolactivity. this , pd);

以上就是本文的全部内容,希望对大家的学习有所帮助.

最后此篇关于Android实现支持进度条显示的短信备份工具类的文章就讲到这里了,如果你想了解更多关于Android实现支持进度条显示的短信备份工具类的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com