各位好,我最近在写一个例子,关于账户同步的,参照SDK中的SampleSyncAdapter这个实例。在实现同步功能的时候遇到了问题,我依照实例中的代码来写,我的主要代码如下:
public class SyncService extends Service { private static final Object mSyncLock = new Object(); private static SyncAdapter mSyncAdapter; @Override
public void onCreate() {
super.onCreate();
synchronized (mSyncLock) {
if (mSyncAdapter == null) {
mSyncAdapter = new SyncAdapter(getApplicationContext(), true);
}
}
} @Override
public IBinder onBind(Intent arg0) {
return mSyncAdapter.getSyncAdapterBinder();
}
}
public class SyncAdapter extends AbstractThreadedSyncAdapter { private AccountManager mAccMgr;
private Context mContext; public SyncAdapter(Context context, boolean autoInitialize) {
super(context, autoInitialize);
mContext = context;
mAccMgr = AccountManager.get(mContext);
} @Override
public void onPerformSync(Account account, Bundle extras, String authority, ContentProviderClient provider,
SyncResult syncResult) {
// print out something
Toast.makeText(mContext, "开始同步", Toast.LENGTH_LONG).show();
}
mainfest中的service声明 <!-- sync service -->
<service
android:name=".syncadapter.SyncService"
android:exported="true" >
<intent-filter>
<action android:name="android.content.SyncAdapter" />
</intent-filter> <meta-data
android:name="android.content.SyncAdapter"
android:resource="@xml/syncadapter" />
<meta-data
android:name="android.provider.CONTACTS_STRUCTURE"
android:resource="@xml/contacts" />
</service>
如上是我的主体代码,但是安装以后,账号界面的“开始同步”按钮是灰色的,不能点。请教下这是为什么呢?androidaccount同步
public class SyncService extends Service { private static final Object mSyncLock = new Object(); private static SyncAdapter mSyncAdapter; @Override
public void onCreate() {
super.onCreate();
synchronized (mSyncLock) {
if (mSyncAdapter == null) {
mSyncAdapter = new SyncAdapter(getApplicationContext(), true);
}
}
} @Override
public IBinder onBind(Intent arg0) {
return mSyncAdapter.getSyncAdapterBinder();
}
}
public class SyncAdapter extends AbstractThreadedSyncAdapter { private AccountManager mAccMgr;
private Context mContext; public SyncAdapter(Context context, boolean autoInitialize) {
super(context, autoInitialize);
mContext = context;
mAccMgr = AccountManager.get(mContext);
} @Override
public void onPerformSync(Account account, Bundle extras, String authority, ContentProviderClient provider,
SyncResult syncResult) {
// print out something
Toast.makeText(mContext, "开始同步", Toast.LENGTH_LONG).show();
}
mainfest中的service声明 <!-- sync service -->
<service
android:name=".syncadapter.SyncService"
android:exported="true" >
<intent-filter>
<action android:name="android.content.SyncAdapter" />
</intent-filter> <meta-data
android:name="android.content.SyncAdapter"
android:resource="@xml/syncadapter" />
<meta-data
android:name="android.provider.CONTACTS_STRUCTURE"
android:resource="@xml/contacts" />
</service>
如上是我的主体代码,但是安装以后,账号界面的“开始同步”按钮是灰色的,不能点。请教下这是为什么呢?androidaccount同步
解决方案 »
- android 调用JAX-WS构造的webservice问题
- android打开虚拟设备出launcher关闭错误,求教
- adb.exe 停止工作了,怎么回事啊?
- 祝贺android开版
- 关于安卓复制/data/data文件的问题
- 一个简单的音乐播放问题
- android 电梯项目需求分析
- socket发送 XML格式的数据
- asynctask更新ui
- (求助)editText焦点监听不起作用
- android怎么重写SimpleAdapter在getView方法中实现点击Item改变背景色?
- java.lang.IllegalArgumentException: Unknown URI content:
详细你可以了解一下google play账号,gamil等的同步功能,前提需要安装下GMS。