鱼C论坛

 找回密码
 立即注册
查看: 2196|回复: 0

[原创] 安卓程序设计短信的备份与还原

[复制链接]
发表于 2014-11-3 22:33:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 青玄 于 2014-11-3 23:13 编辑

在安卓中!短信的备份与还原!是比较重要的!起大概的原理大概是这样的!首先在布局文件里面先设置两个按钮!然后在activity程序里面写这两个按钮的回调方法,当点击备份短信的时候!就会调用这个备份短信的方法!然后就是设置进度条!再在这个这个方法里面开一个子线程!这个子线程里面执行
的是备份的工作的方法!其返回值是一个boolean类型的,如果返回的true的话,则是本分成功!然后在这个子线程里面设置一条消息!然后将这个消息放到消息队列中!然后由主线程来获取这条消息!成功的话!则显示成功!失败的话,则显示失败!值得注意的是,备份的原理其实就是!将短信数据库里面的数据用文件流的形式读取出来!然后写到一个xml文件中!呵呵! 相信这样说!大家都很不明白!完了!我把源代码,传上来!有兴趣的朋友!可以看一下!附加的知识:

   ContentObserver  内容监控者

  1. 被监控方的用context.getContentResolver().notifyChange(messageuri, null); //uri自行设定
  2. 网消息邮箱或消息对队中添加消息

  3. 监控方:Uri uri=Uri.parse("content://sms");
  4.        ContentResolver resolver=this.getContentResolver();
  5.        resolver.registerContentObserver(uri, true, new MyContentObserver(new Handler()));//注册内容观察者
  6. private class MyContentObserver extends ContentObserver
  7.         {

  8.                 public MyContentObserver(Handler handler) {
  9.                         super(handler);
  10.                 }

  11.                 @Override
  12.                 public void onChange(boolean selfChange) {
  13.                        
  14.                         Toast.makeText(MainActivity.this, "A应用数据库发生变化了", Toast.LENGTH_LONG).show();
  15.                         Cursor cursor=SmsUtil.getNewData(MainActivity.this);
  16.                         cursor.moveToFirst();
  17.                         String body=cursor.getString(cursor.getColumnIndex("body"));
  18.                         cursor.close();
  19.                        
  20.                         Log.i("MainActivity",body);
  21.                         super.onChange(selfChange);
  22.                 }
  23.                
  24.                
  25.                
  26.         }
复制代码

android四大组件之一:activity

  1. 四大组件之一,创建完Activity后要在AndroidMainfest.xml中使用<activity android:name="类的全路径" android:Lable="标题" android:icon="图标">
  2. 如果未注册该Activity,调用该Activity时会报错:ActivityNotFoundException,
  3. <intent-filter>
  4.        <action android:name="android.intent.action.MAIN" />  //主Activity,应用的入口
  5.        <category android:name="android.intent.category.LAUNCHER" />//在桌面创建捷图标
  6. </intent-filter>

  7. Activity之间的跳转及数据传递

  8.     Intent intent=new Intent(this,SecondActivity.class);
  9.     startActivity(intent);

  10. //意图对象
  11.                         //第一种
  12.                         //Intent intent=new Intent(this,SecondActivity.class);
  13.                         //第二种
  14.                         /*Intent intent=new Intent();
  15.                         intent.setClass(this,SecondActivity.class);*/
  16.                         //第三种
  17.                         /*Intent intent=new Intent();
  18.                         ComponentName component=new ComponentName(this,SecondActivity.class);
  19.                         intent.setComponent(component);
  20.                         */
  21.                         //适用于打开外一应用的Activity
  22.                         //第四种
  23.                         /*Intent intent=new Intent();
  24.                         intent.setClassName("com.cbd.activity", "com.cbd.activity.SecondActivity");
  25.                         startActivity(intent);*/
  26.                        
  27.                         //打开浏览器
  28.                         /*Intent intent=new Intent();
  29.                         intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity");
  30.                         startActivity(intent);*/



  31. 数据传递:是向Intent中需加数据 intent.putExta(key,value)

  32. 接收数据:  从下向文件找到Intent对象  Intent intent=getIntetn();   intent.getStringExta(key)   intent.getIntExta(key);
复制代码





QQ截图20141103221700.png

infoData_test.zip

1.19 MB, 下载次数: 0

源码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-28 02:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表