1
我有一個小部件的應用程序。我想用小部件啓動應用程序,但啓動後,我的小部件不響應點擊。只有在正常啓動應用程序(並再次關閉應用程序)之後,窗口小部件纔開始響應窗口小部件本身的點擊。爲什麼我的Android 2.3小部件在啓動後不響應點擊?
這是我如何設置與的AppWidgetProvider小部件:
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
{ final int ids = appWidgetIds.length;
for(int i=0;i<ids;i++)
{ int appWidgetId = appWidgetIds[i];
Intent intent = new Intent(context, TestReceiver.class);
intent.setAction(ACTION_WIDGET_RECEIVER);
intent.setClassName(TestReceiver.class.getPackage().getName(), TestReceiver.class.getName());
PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
views.setOnClickPendingIntent(R.id.widget_root, pi);
views.setTextViewText(R.id.widgetclock, "Loading...");
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}
我有什麼改變讓我的應用程序在啓動後的小部件註冊點擊,而無需先啓動它至少一次?
你爲什麼要使用動作*和*一個類?通常你使用一個或另一個。 – CommonsWare 2012-04-18 20:26:45
因爲否則它不起作用。 – HardCoder 2012-04-18 21:14:18
「因爲否則它不起作用」 - 它適用於其他人。也許你應該花一些時間學習'BroadcastReceivers'和'Intent'系統是如何工作的,然後(並且只有這樣)嘗試編寫一個應用程序部件。 – CommonsWare 2012-04-18 21:16:58