Cig*_*lée 17 android android-appwidget
我正在尝试获取我的小部件的所有ACTIVE实例的列表.在我的AppWidgetProvider的OnUpdate方法中,我正在执行以下操作:
// Get all ids
ComponentName thisWidget = new ComponentName(context, this.getClass());
int[] lastWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget);
Run Code Online (Sandbox Code Playgroud)
问题是,如果您将小部件添加到主屏幕然后将其删除,getAppWidgetIds仍会返回一个列表,其中包含您刚刚删除的小部件的ID.
有没有办法只检索主屏幕上活动的小部件的ID?
bug*_*ixr 12
我也碰到了这个.我猜测getAppWidgetIds只是被编程为始终获得与该小部件提供者关联的所有ID.要解决这个问题,我必须将Widget ID保存到我的共享首选项,onUpdate方法是在方法中保存id 并在onDeleteAppWidgetProvider 的方法中删除它.
public class MyProvider extends AppWidgetProvider {
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
// Update your widget as normal
// If the Id isn't already saved to your db/app preference, save it now
}
public void onDeleted (Context context, int[] appWidgetIds) {
// Remove each id passed in through appWidgetIds
// "un-save" them from your db or app preferences
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2798 次 |
| 最近记录: |