如何在重启手机时从appWidgetProvider恢复数据?

时间:2012-01-17 16:52:55

标签: android

我正在制作一个简单的备忘录小部件应用。 只写一些文本并将其保存到SharedPreference。 一切正常.. 但是当我的手机重启时,应用小部件将变为默认值。

我听说我应该对Boot_Complete做点什么.. 所以我在Manifest中添加了Boot_Complete Permission和Intent-Filter。 但我不知道如何在我的手机重启时调用onUpdate。 我的来源是这个.. 请参阅onReceive部分..

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

    for(int i=0; i<appWidgetIds.length; i++){
        int widgetId = appWidgetIds[i];
        Intent intent = new Intent(context, MyAppPostItActivity.class);
        intent.putExtra("widgetId", widgetId);
        PendingIntent pending = PendingIntent.getActivity(context, widgetId, intent, PendingIntent.FLAG_UPDATE_CURRENT);
        RemoteViews remote = new RemoteViews(context.getPackageName(), R.layout.widget);
        remote.setOnClickPendingIntent(R.id.layout, pending);
        appWidgetManager.updateAppWidget(widgetId, remote);

    }

}//onUpdate

@Override
public void onReceive(Context context, Intent intent) {
    super.onReceive(context, intent);

    if(intent.getAction().equals("android.intent.action.BOOT_COMPLETED")){
        //I guess I should Call the onUpdate In here!! But I don't know how..
    }


}

boot_complete之后,如何恢复我的小部件数据? 我希望有任何建议或线索或样品.. 非常感谢〜!

1 个答案:

答案 0 :(得分:0)

回答我自己。 我忘了在onUpdate方法中使用setText。 在onUpdate中添加setText之后,重启后它可以正常工作。