首页 > 代码库 > 一步一步教你在 Android 里创建自己的账号系统(二)--同步数据以及设计账号页面

一步一步教你在 Android 里创建自己的账号系统(二)--同步数据以及设计账号页面

大家如果喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢

转载请标明出处(http://blog.csdn.net/kifile),再次感谢


在前一篇文章中(一步一步教你在 Android 里创建自己的账号系统(一)),我向大家介绍了如何在 Android 系统中创建自己的账户系统,接下来我会向大家详细介绍一下如何使用账户系统。

(一)同步数据

通常而言,我们会在两种情况下使用我们的账号系统:

(1)登陆验证

登陆验证其实是一个很实用的功能,试想一下,加入你手机丢失了,而手机上又有很多应用,例如淘宝,QQ,拾到手机的人点击应用就可以登陆到你的账号上,这样一来我们就无法保证我们的信息和账户安全。为了防止这种情况的发生,你会修改你的密码,而当手机账户系统运行的时候,他会发现账户系统验证失败,就无法访问你相关账户了,以确保你的账户安全

(2)信息同步

如果你希望不同的设备上,同一账号的用户的某些信息要保持同步的话,那么你就可以通过账户系统自带的同步服务来实现


1.账户信息同步

账户信息同步其实主要来说有两种方式,一种是自动同步,一种是手动同步。从名字上大家就能够看出两者的区别,前者是我们设定一个固定时间间隔,让 android 系统帮我们自动同步数据,后者则是在应用中调用某个方法直接告诉设备,通知系统同步数据。

(1)自动同步:在这里需要留意的是,虽然前者有设置一个固定时间间隔,但是 android 会尽量将所有同步数据的时间都安排在一起,以减少唤醒设备的次数,因此你可能发现虽然你设置了一个固定的间隔时间,但是到了那个时间点,系统其实并没有按时同步数据。

设置自动同步的代码如下:

 ContentResolver.setSyncAutomatically(account1, "com.kifile.provider", true);
                ContentResolver.addPeriodicSync(account1, "com.kifile.provider", bundle, 10);
第一句的作用是,设置账号自动同步,第二句的作用则是设定账号同步的间隔时间,单位为秒

(2)手动同步:在我看来手动同步其实是很有作用的,因为当你对账户信息做出更改之后,你不能完全依赖系统的同步机制,他的同步时间可能会在很久之后,因此,你需要手动调用账户同步接口,令系统同步数据。

手动同步的代码如下:

ContentResolver.requestSync(account1, "com.kifile.provider", bundle);

2.处理同步数据时的异常

同步数据时难免会出现问题,例如网络中断,或者是账号密码验证失败。对于这两种情况而言,前者不需要太过留意,只要之后能够同步正确数据即可,但是后者则需要你通知系统中断当前的账号服务,避免出现账号安全问题。


(二)设置账号页面

在账号信息页面,并不意味着只能暂时简单的账户信息,在这里,你可以根据你的需求自定义账号页面效果。

在自定义账号页面之前,你需要首先在authencator.xml(内容见之前的文章)中声明一下你需要使用的界面效果:

android:accountPreferences="@xml/account_preferences"
该界面效果是使用Android的Preference设置项页面进行展示的,通过这个设置页面,你能够展示最基本的页面设置信息,并且还能够使用SharedPreferences设置相关的键值信息。

当你设置好界面效果之后,能够发现账号页面除了基本的账号以外,还多了自己设置的相关界面,如下:


虽然界面效果肯定不如我们自己应用的华美,但是我们也能够向用户展示更多信息了。

通过Preference可以设置List,Checkbox和EditText三种设置选项,但具体页面的设置详情其实和账户系统关系不大,我会在另一篇文章中写出,大家在这里初步了解一下就好。


唔,第二节暂时就写到这里吧,在下一篇文章中,我会跟大家一起分析账号系统在多应用间共享的问题。

一步一步教你在 Android 里创建自己的账号系统(二)--同步数据以及设计账号页面