青玄 发表于 2014-11-3 22:33:22

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

本帖最后由 青玄 于 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);






页: [1]
查看完整版本: [原创] 安卓程序设计短信的备份与还原