|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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);
复制代码
|
|