0

アプリを起動するためのウィジェットを作成しました。ウィジェット内のデータは の後に更新されてい30minsます。タイミングを約 に減らす必要があり2minsます。を使用して実行できると聞いたことがありますがAlarmService、どのように実装する必要があるかわかりません。ウィジェットコードを共有しています。

public class SampleWidget extends AppWidgetProvider {
    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager,
            int[] appWidgetIds) {
        // TODO Auto-generated method stub
        super.onUpdate(context, appWidgetManager, appWidgetIds);
        RemoteViews view;
        SampleDatabase linksDatabase = new SampleDatabase(context);
        linksDatabase.openDb();
        List<MyMedia> myMedias = linksDatabase.getData();
        String date = null;
        String level = null;
        for (int j = 0; j < myMedias.size(); j++) {
            date = myMedias.get(j).getDateTime();
            level = myMedias.get(j).getLevel();
        }

        linksDatabase.closeDb();
        if (myMedias != null && myMedias.size() > 0) {

            for (int i = 0; i < myMedias.size(); i++) {
                final int n = appWidgetIds.length;
                for (int j = 0; j < n; j++) {
                    int appWidget = appWidgetIds[j];
                    Intent intnt = new Intent(context, MainActivity.class);
                    PendingIntent pi = PendingIntent.getActivity(context, 0,
                            intnt, 0);
                    view = new RemoteViews(context.getPackageName(),
                            R.layout.widget_layout);
                    view.setOnClickPendingIntent(R.id.relLayout, pi);
                    view.setTextViewText(R.id.date, date);
                    //view.setTextViewText(R.id.time, obtainedTime);
                    StringBuffer sb = new StringBuffer(level);
                    sb.append(" ");
                    sb.append("units");
                    view.setTextViewText(R.id.value_1, sb.toString());
                    appWidgetManager.updateAppWidget(appWidget, view);

                }

            }

        }
    }
}

実装方法を見つけるのを手伝ってくれる人はいますか。ありがとう

4

1 に答える 1

0

service私はこれに対する解決策を得ました。それは、テキストを更新する場所を書く必要があり、 AlarmManager2分ごとに呼び出す必要があるということです。サービス クラスでは、データベース オブジェクトを作成し、ウィジェット内のテキストを更新する詳細を取得することで、データにアクセスします。

于 2012-12-18T11:58:15.377 に答える