我这里有一个奇怪的...
我有一台配备 Nextel 的 Motorola i1,运行 Android 1.5
我有一个安卓小部件。
当我开始运行更新此小部件的服务时,我看到来自另一个小部件的图像(启动 DC Contact)
它在我的小部件的位置显示此图像,但是当我的小部件的“更新”完成时,它会被我的小部件的布局替换。
就好像有一个小部件图像的缓存,它显示从那里开始的内容,直到我的小部件更新完成。
如果我的更新需要很长时间,那么用户可以看到这个奇怪的图像 2-3 秒。
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(上下文,意图);
Log.d(TAG, "接收时退出");
}
这是布局
<?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>
你见过这样的事情吗?
thanks