2

ウィジェットが更新されないことについて他にもいくつか質問がありますが、それらはすべて、updatePeriodMillisが30分未満の値に構成されていて、1時間に設定し、数時間チェックしているためです。

更新をテストするためだけに、実際のウィジェットプロジェクトとは別のプロジェクトを開始しましたが、どこにも行きません。

ウィジェットは、currentTimeMillis()でTextViewを更新するだけです。

AndroidManifest.xml

    <receiver android:name="TestWidget" android:exported="false">
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
        </intent-filter>
        <meta-data android:resource="@xml/widget" android:name="android.appwidget.provider"/>
    </receiver>

widget.xml

 <?xml version="1.0" encoding="utf-8"?>
 <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
     android:initialLayout="@layout/widget"
     android:minHeight="40dp"
     android:minWidth="250dp"
     android:updatePeriodMillis="3600000" >
 </appwidget-provider>

最初の呼び出しですべてが正常にロードされますが、onUpdateが再度呼び出されることはありません。

助言がありますか?

編集:

TestWidget.classはonUpdateのみをオーバーライドします

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
        int[] appWidgetIds) {

    final int N = appWidgetIds.length;

    for (int i = 0; i < N; i++) {
        // Inflate the layout
        RemoteViews v = new RemoteViews(context.getPackageName(),
                R.layout.widget);
        v.setTextViewText(R.id.text1, Double.toString(Math.random()));
        v.setTextViewText(R.id.text2,
                Long.toString(System.currentTimeMillis()));

        // Update the widget
        appWidgetManager.updateAppWidget(appWidgetIds[i], v);

    }
}
4

1 に答える 1

3

結局、私の電話が作動していたか(私が物事を再起動したことを考えると)、または私は単に少し入院していたように思われるので、不必要な質問についてコミュニティに謝罪したいと思います。

どうやら、onUpdateがフレームワークによって呼び出され始めるまでには実際には数時間かかります。過去3時間(その前は寝ていました)、更新がかなり一貫して行われているのを見ることができます。

誰かが同じ問題を抱えている場合に備えて、私は質問を削除しませんでした、あなたは本当に待つ必要があります!

ありがとう。

于 2012-08-29T08:11:47.250 に答える