场景一:
- 设备已加载
- 我添加第一个小部件
- OneX -> 调用 onEnabled | Galaxy Tab -> 不调用 onEnabled。
场景二:
- 设备已在屏幕上使用小部件启动。
- OneX -> 调用 onEnabled | Galaxy Tab -> Calls onEnabled
但是当用户在屏幕上放置一个时必须调用它(场景 1),否则有什么意义。当然,您不必重新启动设备即可调用 onEnabled。
它很重要,因为我附加了一个警报管理器以每 2 秒更新一次我的小部件:
AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 1);
alarmManager.setRepeating(AlarmManager.RTC, calendar.getTimeInMillis(), 1000, createClockTickIntent(context));
有一个类似的问题没有有效的解决方案:AppWidgetProvider: not called onEnabled method
无需注册这些意图,这样做也无济于事。
我的问题是为什么 onEnabled 不调用,我该如何调用它。
它在谷歌文档上说:ACTION_APPWIDGET_ENABLED:
当 AppWidget 的实例第一次添加到主机时发送。如果安装了带有此提供程序实例的 AppWidgetHost,则会在启动时发送此广播。
基本上确认它应该在两种情况下都有效
这是触发onEnabled()的意图
在实例化此提供程序的 AppWidget 时调用以响应 ACTION_APPWIDGET_ENABLED 广播。重写此方法以实现您自己的 AppWidget 功能。
它适用于手机而不是平板电脑的事实很奇怪。这是 android 3.2 的问题吗?有解决方法吗?