おそらく初心者の質問です。Android AppWidgetProvider onUpdate メソッドで遊んで、「スリープ」を使用して小さな遅延を誘発しようとしました。
更新はループを使用して繰り返されます - これが問題です: ループカウンターが 20 に設定され、スリープ時間が 1 秒の場合 - ループは 10 回しか実行されません - 1 秒の遅延が 900 ミリ秒でループが 12 に増加し、500 ミリ秒の遅延が完全なループを取得しますこれはどのように説明されますか?
以下の AppWidgetProvide コードを参照してください。ウィジェットには、テキストビューが 1 つだけ含まれています。
public class SimpleWidget extends AppWidgetProvider {
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
// TODO Auto-generated method stub
super.onUpdate(context, appWidgetManager, appWidgetIds);
Log.w("on update here", " message");
RemoteViews rm = new RemoteViews(context.getPackageName(),
R.layout.widget_layout);
for (int loop = 0; loop <= 20; loop++) {
Log.w("on update here", "loop counter =" + loop);
rm.setTextViewText(R.id.tvWidget, "now you see it " + loop);
for (int index = 0; index < appWidgetIds.length; index++) {
appWidgetManager.updateAppWidget(appWidgetIds[index], rm);
Log.w("updating", "aw number =" + index);
}
try {
Thread.sleep(2000, 0);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}