2012-11-08 60 views
0

我有一個爲我的應用程序啓動而創建的小部件。小部件中的數據在30mins後得到更新。我需要將時間縮短到2mins左右。我聽說可以使用AlarmService來完成,但我不知道應該如何實施。我分享我的小部件代碼。2分鐘後的Android Widget文本更新

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); 

       } 

      } 

     } 
    } 
} 

任何人都可以幫助我找到一種實施方法。謝謝

回答

0

我得到了這個解決方案,這是你必須編寫一個service你將在哪裏更新文本,你將需要每2分鐘致電AlarmManager。在服務類中,您將通過創建數據庫對象並獲取更新小部件中文本的詳細信息來訪問數據。