【问题标题】:Changing receiver namespace without breaking already placed widgets更改接收器命名空间而不破坏已放置的小部件
【发布时间】:2013-12-15 17:16:18
【问题描述】:

当我更改小部件提供程序的命名空间时,小部件变为空白并且在我将其删除并重新添加之前无法使用。

如何在不破坏已放置的小部件的情况下更改小部件的命名空间和接收者名称。

重命名前:

    <receiver android:name="com.creativitality.labs.timezoneswidget.WidgetProvider" android:label="@string/widget" >
    <intent-filter>
        <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
    </intent-filter>

    <meta-data
        android:name="android.appwidget.provider"
        android:resource="@xml/widget_info_large" />
</receiver>

移动和重命名提供者后:

    <receiver android:name="com.creativitality.labs.timezoneswidget.widget.WidgetLarge" android:label="@string/widget_4x1" >
    <intent-filter>
        <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
    </intent-filter>

    <meta-data
        android:name="android.appwidget.provider"
        android:resource="@xml/widget_info_large" />
</receiver>

【问题讨论】:

  • 我了解在 API 指南中建议不要重命名接收器。但是,我想找出最好的选择。例如: - 强制删除(旧)不再可见但仍占用空间的活动小部件。

标签: android namespaces widget


【解决方案1】:

对于活动,您可以在清单中创建一个&lt;activity-alias&gt; 元素,指向&lt;activity&gt; 的新名称。

没有针对接收器的解决方案。 &lt;receiver-alias&gt; 不存在。您的接收器必须永远保留其原始名称,否则它将损坏。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    • 2011-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多