鱼C论坛

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

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

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

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

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

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

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

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

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

                public MyContentObserver(Handler handler) {
                        super(handler);
                }

                @Override
                public void onChange(boolean selfChange) {
                        
                        Toast.makeText(MainActivity.this, "A应用数据库发生变化了", Toast.LENGTH_LONG).show();
                        Cursor cursor=SmsUtil.getNewData(MainActivity.this);
                        cursor.moveToFirst();
                        String body=cursor.getString(cursor.getColumnIndex("body"));
                        cursor.close();
                        
                        Log.i("MainActivity",body);
                        super.onChange(selfChange);
                }
                
                
                
        }
android四大组件之一:activity
四大组件之一,创建完Activity后要在AndroidMainfest.xml中使用<activity android:name="类的全路径" android:Lable="标题" android:icon="图标">
如果未注册该Activity,调用该Activity时会报错:ActivityNotFoundException,
 <intent-filter>
       <action android:name="android.intent.action.MAIN" />  //主Activity,应用的入口
       <category android:name="android.intent.category.LAUNCHER" />//在桌面创建捷图标
 </intent-filter>

Activity之间的跳转及数据传递

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

//意图对象
                        //第一种
                        //Intent intent=new Intent(this,SecondActivity.class);
                        //第二种
                        /*Intent intent=new Intent();
                        intent.setClass(this,SecondActivity.class);*/
                        //第三种
                        /*Intent intent=new Intent();
                        ComponentName component=new ComponentName(this,SecondActivity.class);
                        intent.setComponent(component);
                        */
                        //适用于打开外一应用的Activity
                        //第四种
                        /*Intent intent=new Intent();
                        intent.setClassName("com.cbd.activity", "com.cbd.activity.SecondActivity");
                        startActivity(intent);*/
                        
                        //打开浏览器
                        /*Intent intent=new Intent();
                        intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity");
                        startActivity(intent);*/



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

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




QQ截图20141103221700.png

infoData_test.zip

1.19 MB, 下载次数: 0

源码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 16:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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