我的應用程序上有一個小部件,Service
爲了自動更新。如何處理按鈕單擊小工具
小工具有ImageButton
其中觸發手動更新內容。但我無法處理點擊事件。
這裏是我的AppWidgetProvider
:
public class MyWidget extends AppWidgetProvider {
public static String ACTION_WIDGET_RECEIVER = "ActionReceiverWidget";
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
super.onUpdate(context, appWidgetManager, appWidgetIds);
RemoteViews rmViews = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
Intent active = new Intent(context, MyWidget.class);
active.setAction(ACTION_WIDGET_RECEIVER);
active.putExtra("msg", "Message for Button 1");
PendingIntent configPendingIntent = PendingIntent.getActivity(context, 0, active, 0);
rmViews.setOnClickPendingIntent(R.id.buttonus1, configPendingIntent);
appWidgetManager.updateAppWidget(appWidgetIds, rmViews);
}
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
if(intent.getAction().equals(ACTION_WIDGET_RECEIVER)) {
Log.d(debug_tag, intent.getAction());
}
}
}
當我點擊按鈕沒有什麼改變。它甚至沒有記錄。
的Manifest.xml聲明:
<receiver android:name=".MyWidget" android:label="@string/app_name">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
<action android:name="com.app.example.MyWidget.ACTION_WIDGET_RECEIVER"/>
</intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/widget"/>
</receiver>
有什麼不對?
順便說一句,如果我可以處理點擊,我應該如何使用手動更新?我是否將其傳遞給服務以及哪種方式?
編輯:更改getActivity()
與getBroadcast()
並處理好點擊。但無法將此消息傳遞給服務。任何建議?
好了我如何做一些細節,但我已經爲自然而然更新服務,這很重要? – 2012-03-09 11:43:54
@Ogulcan:不,不要緊,只是爲了改進'AppWidgetProvider'類,因爲當你想更新小部件時你沒有區分 – 2012-03-09 11:59:31