【问题标题】:Getting settings from configure activity从配置活动中获取设置
【发布时间】:2012-07-31 15:24:55
【问题描述】:

以下情况我需要帮助。我有配置活动的小部件。在活动中是带有一些值的微调器,这应该会影响小部件的外观(只有一个 TextView 中的文本)。这时候我设置AlarmManager为widget update(service),在Configure activity中修改TextView。这工作正常,但是当我重新启动手机时,不再设置警报,我应该再次设置它。我做不到,因为配置活动中的设置丢失了。

有解决方案 - 将带有小部件设置的 AppWidgetID 保存到数据库,但我认为这不是最好的解决方案。一个问题是,AppWidgetProvider 的 onUpdate 方法在 ConfigureActivity 的 onCreate 方法之前被调用。

简而言之,我需要从配置活动中获取一些设置,将其传递给 AppWidgetProvider 并更新小部件。

提前致谢

【问题讨论】:

    标签: android android-widget appwidgetprovider


    【解决方案1】:

    听起来像是SharedPreferences 的工作。使用您的配置活动来设置偏好值并从您的小部件中读取它们。使用PreferenceManager.getDefaultSharedPreferences(Context) 访问共享首选项。

    【讨论】:

    • SharedPreferences 是我解决它的第一个想法。保存是可以的,但是如何说 AppWidgetProvider 必须更新具有特定 AppWidgetId 的小部件?
    • @skywall - 从配置活动更新小部件的机制描述为here。您从启动配置活动的意图中检索小部件 ID。
    • 谢谢,我终于使用了AppWidgetProvider的SharedPreferences和onReceive方法。
    【解决方案2】:

    使用shared preferences 怎么样? 如果您需要保存一些与您的应用程序相关的首选项设置,您可以使用此解决方案。

    类似这样的:

    SharedPreferences sharedPreference = getSharedPreferences(PREFS_NAME, 0);
    String prefName = sharedPreference.getString(YOUR_PREF_NAME, DEFAULT_VALUE); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-26
      • 1970-01-01
      • 2015-09-11
      • 2011-03-08
      相关资源
      最近更新 更多