0

私は静的な Android ウィジェットを作成しています。つまり、ウィジェットを更新する必要はまったくありません。ウィジェットが処理する必要があるのは、トリガーされたときにブラウザからリンクを開くことだけです。

AppWidgetProviderInfo メタデータ xml ファイルには、「updatePeriodMillis」という属性が 1 つありますが、そこに値を設定する必要がありますか? または、この属性を追加しないでください。

ありがとう

4

2 に答える 2

1

AppWidgetProvider クラスで onUpdate() をオーバーライドして、何もしないでください。

public class MyWidget extends AppWidgetProvider {

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    //do nothing
    }
}
于 2013-07-22T03:18:34.120 に答える
0

widgetprovider ファイルに次のメソッドを記述します。

@Override
public void onReceive(Context context, Intent intent) {
 ComponentName thisAppWidget = new ComponentName(context.getPackageName(), getClass().getName());
    AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
    int ids[] = appWidgetManager.getAppWidgetIds(thisAppWidget);
    int idd[];
    idd = appWidgetManager.getAppWidgetIds(thisAppWidget);
    // call updateAppWidget for each widget
    for (int appWidgetID : ids) {
        updateAppWidget(context, appWidgetManager, appWidgetID);
    }
super.onReceive(context, intent);
}


public void updateAppWidget(Context context,AppWidgetManager appWidgetManager, int appWidgetId){
    RemoteViews updateViews = new RemoteViews(context.getPackageName(),R.layout.widget_layout1_1);
    updateViews.setTextViewText(R.id.txt_days, "" + tmp_diffrentDays);
    appWidgetManager.updateAppWidget(appWidgetId, updateViews);
}

上記のコードを試してみてください

于 2013-07-22T04:23:42.293 に答える