我有下一個Widget代碼。AlarmManager每次更新
public class MainActivity extends AppWidgetProvider {
public String FORCE_APDATA="com.example.widjet.FORCE_UDATA_SUKA";
public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidget){
RemoteViews remoteViews = new RemoteViews(context.getPackageName(),R.layout.widget);
AppWidgetManager appManager=AppWidgetManager.getInstance(context);
remoteViews.setViewVisibility(R.id.textView1, View.GONE);
remoteViews.setViewVisibility(R.id.PB1, View.VISIBLE);
appManager.updateAppWidget(appWidget, remoteViews);
Citata c=new Citata();
String citats="";
try {
citats = String.valueOf(c.getCitata());
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
remoteViews.setTextViewText(R.id.textView1, citats);
Intent intent=new Intent(context,MainActivity.class);
intent.setAction(FORCE_APDATA);
PendingIntent pIntent=PendingIntent.getBroadcast(context, 0, intent, 0);
remoteViews.setOnClickPendingIntent(R.id.textView1, pIntent);
AlarmManager alarmManager=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
60*60*1000,
(60*60*1000)/2,
pIntent);
remoteViews.setViewVisibility(R.id.textView1, View.VISIBLE);
remoteViews.setViewVisibility(R.id.PB1, View.GONE);
appManager.updateAppWidget(appWidget, remoteViews);
}
public void onReceive(Context context, Intent intent){
super.onReceive(context, intent);
if(FORCE_APDATA.equals(intent.getAction())){
AppWidgetManager appManager=AppWidgetManager.getInstance(context);
ComponentName thisWidget=new ComponentName(context.getApplicationContext(),MainActivity.class);
int[] appWidgetIds=appManager.getAppWidgetIds(thisWidget);
onUpdate(context,appManager,appWidgetIds);
}
}
}
功能c.getCitata()
睡眠2秒鐘,然後返回日期。 但是,當我啓動這個小部件時,我只能看到ProgressBar。如果刪除AlarmManager,所有工作和更新何時觸摸小部件。我做錯了什麼?
爲了清楚起見,您有一個OnClick掛起的意圖,它將優先於MainActivity.class類。您還有一個AlarmManager,它也會在小部件第一次點擊一小時後發送PendingIntent來打開MainActivity.class,在此之後的30分鐘。你究竟想在這裏實現什麼? –
我想,如果我點擊小部件,他會開始更新,小部件每30分鐘更新一次,但現在(在此代碼中)小部件每秒更新一次。我犯了什麼錯誤? – missing17