【问题标题】:Open multiple instances of an activity from multiple instances of same appwidget从同一个 appwidget 的多个实例中打开一个 Activity 的多个实例
【发布时间】:2013-04-09 12:04:34
【问题描述】:

我有一个小部件,单击时会打开设置活动。现在,如果用户添加多个小部件实例并单击它们,它们都会打开具有相同数据和相同SharedPreferences 的相同活动。

在我的onReceive() 我有

    views.setOnClickPendingIntent(R.id.mytv, pendingIntent);
    appWidgetManager.updateAppWidget(thisAppWidget, views);

我想要的是打开设置活动作为一个单独的实例与独立的SharedPreferences... 有什么办法吗?

【问题讨论】:

  • Android 活动遵循单例模式....stackoverflow.com/a/3399898/1075066
  • 您可以有 2 个不同的 Activity/Class,布局相同
  • @Vincent 如果用户放置 n 个小部件会怎样?你的想法不适合这个
  • 您无法避免用户添加更多小部件。但是您可以使用 SharedPreference/Db 来跟踪您想要的内容

标签: java android


【解决方案1】:

您可以使用该活动,只需在打开该活动时将 appwidget id 传递给该活动。 使用 appwidget id 为每个小部件实例创建单独的共享首选项文件,或者只使用单个共享 pref 文件,但是如果您需要小部件的不同设置,只需创建一些键并为该键附加小部件 id,例如“sort_order_”+appWidgetId。当小部件从屏幕上移除时,不要忘记删除首选项文件或属于该应用小部件的键。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-06
    相关资源
    最近更新 更多