5
我有一個簡單的小部件(Android 2.1的)僅包含的LinearLayout,它本身含有的ImageButton。 ImageButton具有點擊式偵聽器。 的問題是:如果我把這個幾個小部件一樣的我的主屏幕上,有些工作(偵聽器時按下按鈕調用),有的都沒有!我看不到任何工作模式,哪些不是。窗口小部件的ImageButton聽者不叫百達
這裏是小部件佈局:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ImageButton01"
android:src="@drawable/widget_running"
android:background="@null">
</ImageButton>
這裏是控件提供者的代碼:
public class GPAppWidgetProvider extends AppWidgetProvider {
private String mTag = getClass().getSimpleName();
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
final int N = appWidgetIds.length;
Log.e(mTag, "onUpdate ");
// Perform this loop procedure for each App Widget that belongs to this
// provider
for (int i = 0; i < N; i++) {
Log.e(mTag, "widget onUpdate one loop");
int appWidgetId = appWidgetIds[i];
// Create an Intent
Intent intent = new Intent(context, GPService.class).setAction(ACTION_WIDGET_TOGGLE_PAUSE);
intent.putExtra("widgetId", appWidgetId);
PendingIntent pauseIntent = PendingIntent.getService(context, 0, intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.gp_appwidget);
views.setOnClickPendingIntent(R.id.ImageButton01, pauseIntent);
// widget update
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}
}
更新:看來,如果我重新啓動手機或應用程序,然後所有的部件都工作......但如果我增加新的部件,大部分的時間,他們將無法正常工作,直到我重新啓動手機或重新啓動應用程序... – Gael 2011-04-26 13:46:34
我也遇到過這種情況,一旦我添加主屏幕小部件,它不會立即將監聽器附加到按鈕上。我必須運行服務/通過主頁圖標啓動應用程序來觸發更新。 – Joset 2011-08-07 01:43:43