O widget Android mostra uma imagem estranha durante a atualização
Eu tenho um estranho aqui ... Eu tenho um Motorola i1 com Nextel rodando o Android 1.5
Eu tenho um widget Android. Quando começo a executar o Serviço que atualiza este widget, vejo uma imagem de outro widget (Iniciar contato do DC)
Ele mostra esta imagem no local do meu widget, mas quando a "atualização" do meu widget é concluída, ela é substituída pelo layout que tenho para o meu widget.
É como se houvesse um cache de imagens de widgets e ele mostra coisas até que a atualização do widget seja concluída.
Se minha atualização demorar, o usuário poderá ver esta imagem estranha por 2-3 segundos.
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
Log.d(TAG, "Enter onUpdate");
final int N = appWidgetIds.length;
for (int i = 0; i < N; i++) {
int widgetId = appWidgetIds[i];
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.widget_initial_layout);
Intent intent = new Intent(context, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
intent, 0);
views.setOnClickPendingIntent(R.id.WidgetLayout, pendingIntent);
views.setTextViewText(R.id.NEWCountTextView, Integer.toString(NEWC));
views.setTextViewText(R.id.ACKCountTextView, Integer.toString(ACKC));
views.setTextViewText(R.id.PKUCountTextView, Integer.toString(PKUC));
views.setTextViewText(R.id.PODCountTextView, Integer.toString(PODC));
if (errorMessage.contentEquals("")) {
errorMessage = (new Date()).toString();
views.setTextColor(R.id.LastUpdatedTextView, Color.BLACK);
} else {
views.setTextColor(R.id.LastUpdatedTextView, Color.RED);
}
views.setTextViewText(R.id.LastUpdatedTextView, errorMessage);
appWidgetManager.updateAppWidget(widgetId, views);
}
Log.d(TAG, "Exit onUpdate");
}
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "Enter onReceive");
String action = intent.getAction();
if (action.contentEquals("android.appwidget.action.APPWIDGET_UPDATE")) {
Bundle extras = intent.getExtras();
if (extras != null) {
NEWC = extras.getInt("NEWCOUNT");
ACKC = extras.getInt("ACKCOUNT");
PKUC = extras.getInt("PKUCOUNT");
PODC = extras.getInt("PODCOUNT");
errorMessage = extras.getString("ERRORMESSAGE");
}
}
super.onReceive (contexto, intenção); Log.d (TAG, "Sair ao receber"); } aqui está o layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/WidgetLayout"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:gravity="top"
android:orientation="vertical"
android:background="@drawable/bg"
>
<TextView
android:text="ORDERS"
android:id="@+id/TextView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="25dip"
android:gravity="top|center"
android:textColor="#ffff00"
android:textStyle="bold"
/>
<TextView
android:text=""
android:id="@+id/TextView01"
android:layout_width="fill_parent"
android:layout_height="6dip"
android:gravity="top|center"
android:background="#0000ff"
/>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout02"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:gravity="top|center"
android:orientation="horizontal"
>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/CountsLinearLayout"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:gravity="top"
android:orientation="vertical"
>
<TextView
android:text="NEW"
android:id="@+id/TextView11"
android:layout_width="75dip"
android:layout_height="wrap_content"
android:textSize="25dip"
android:gravity="center"
android:textColor="#000000"
android:textStyle="bold"
/>
<TextView
android:text=""
android:id="@+id/NEWCountTextView"
android:layout_width="75dip"
android:layout_height="wrap_content"
android:textSize="25dip"
android:gravity="center"
android:textColor="#000000"
android:textStyle="bold"
/>
</LinearLayout>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout04"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:gravity="top"
android:orientation="vertical"
>
<TextView
android:text="ACK"
android:id="@+id/TextView21"
android:layout_width="75dip"
android:layout_height="wrap_content"
android:textSize="25dip"
android:gravity="center"
android:textColor="#000000"
android:textStyle="bold"
/>
<TextView
android:text=""
android:id="@+id/ACKCountTextView"
android:layout_width="75dip"
android:layout_height="wrap_content"
android:textSize="25dip"
android:gravity="center"
android:textColor="#000000"
android:textStyle="bold"
/>
</LinearLayout>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout05"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:gravity="top"
android:orientation="vertical"
>
<TextView
android:text="PKU"
android:id="@+id/TextView31"
android:layout_width="75dip"
android:layout_height="wrap_content"
android:textSize="25dip"
android:gravity="center"
android:textColor="#000000"
android:textStyle="bold"
/>
<TextView
android:text=""
android:id="@+id/PKUCountTextView"
android:layout_width="75dip"
android:layout_height="wrap_content"
android:textSize="25dip"
android:gravity="center"
android:textColor="#000000"
android:textStyle="bold"
/>
</LinearLayout>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout06"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:gravity="top"
android:orientation="vertical"
>
<TextView
android:text="POD"
android:id="@+id/TextView41"
android:layout_width="75dip"
android:layout_height="wrap_content"
android:textSize="25dip"
android:gravity="center"
android:textColor="#000000"
android:textStyle="bold"
/>
<TextView
android:text=""
android:id="@+id/PODCountTextView"
android:layout_width="75dip"
android:layout_height="wrap_content"
android:textSize="25dip"
android:gravity="center"
android:textColor="#000000"
android:textStyle="bold"
/>
</LinearLayout>
</LinearLayout>
<TextView
android:text=""
android:id="@+id/TextView01"
android:layout_width="fill_parent"
android:layout_height="6dip"
android:gravity="bottom|center"
android:background="#0000ff"
/>
<TextView
android:text=""
android:id="@+id/LastUpdatedTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="15dip"
android:gravity="center"
android:textColor="#000000"
android:textStyle="bold"
/>
</LinearLayout>
Você já viu algo assim?
obrigado