如何显示同步失败消息
Posted
技术标签:
【中文标题】如何显示同步失败消息【英文标题】:How to show sync failed message 【发布时间】:2013-01-27 13:11:38 【问题描述】:我已经构建了一个联系人同步适配器。一切正常,但我还需要一件事。如果由于某种原因同步未成功完成,我想在同步失败时显示一条消息,例如 Google 帐户正在显示
【问题讨论】:
那么您是在问如何显示此消息,或者需要捕获哪些异常才能知道同步失败? 我在捕获异常的onPerformSync
中有catch
块,在这些块中我有syncResult.stats.numParseExceptions++
和syncResult.stats.numIoExceptions++
。我希望这是捕获异常的正确方法。如果是这样,我需要如何显示消息
【参考方案1】:
解决方案是设置同步结果的延迟。在此延迟之后,同步将重新启动。
try
DO THE SYNCHRONIZATION
catch (AuthenticationException e)
Log.e(TAG, "AuthenticationException");
syncResult.stats.numAuthExceptions++;
syncResult.delayUntil = 180;
catch (ParseException e)
Log.e(TAG, "ParseException");
syncResult.stats.numParseExceptions++;
catch (IOException e)
Log.e(TAG, "IOException");
syncResult.stats.numIoExceptions++;
syncResult.delayUntil = 180;
【讨论】:
它会在屏幕底部显示一条消息,就像图片上的一样,并在syncResult.delayUntil = numOfSeconds;
指定的秒数后重试同步【参考方案2】:
我想你想要的是Toasts
简单吐司:
Toast.makeText(context, text, duration).show();
text
是您想显示的文本。
duration
是 Toast.LENGTH_SHORT 或 Toast.LENGTH_LONG(取决于 Toast 的可见时间)
toast 中带有图片的更复杂的方法:(sync_toast_lo.xml)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:id="@+id/SynctoastLayout"
android:background="@android:color/black">
<ImageView
android:layout_
android:layout_
android:src="@drawable/your_logo"
android:layout_toLeftOf="@+id/textView"
android:layout_margin="5dip"
android:id="@+id/syncLogo">
</ImageView>
<TextView
android:id="@+id/syncFailedText"
android:layout_
android:layout_
android:text="The sync has failed!"
android:gravity="center"
android:textColor="@android:color/white">
</TextView>
</RelativeLayout>
在你的代码中:
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.Sync_toast_lo,
(ViewGroup) findViewById(R.id.SynctoastLayout));
Toast toast = new Toast(this);
toast.setView(view);
toast.show();
【讨论】:
不,我不想干杯。我很清楚什么是吐司。我想在帐户中显示一条消息并完全按照同步失败时 Google 帐户显示一条消息的方式进行同步 不应该被否决... toast 的唯一问题是它位于 SyncAdapter.java 中的非活动类中 + 同步在后台执行,显示来自 bg 的 toast 不起作用。以上是关于如何显示同步失败消息的主要内容,如果未能解决你的问题,请参考以下文章
android studio 3.1.3中的Gradle项目同步失败
当文件存在并与 onedrive 同步时,_open 失败并显示 O_TRUNC