更改接收器命名空间而不破坏已放置的小部件

时间:2013-02-28 12:37:45

标签: android namespaces widget

当我更改窗口小部件提供程序的命名空间时,窗口小部件变为空白,直到我删除它并再次添加它才会起作用。

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

重命名前:

    <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>

1 个答案:

答案 0 :(得分:0)

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

接收器没有解决方案。 <receiver-alias>不存在。您的接收者必须永远保留其原始名称,否则它将会中断。