- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
场景 1:
场景 2:
但是当用户将一个放在屏幕上时(场景 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
没有必要注册这些 Intent ,这样做也无济于事。
我的问题是为什么 onEnabled 没有调用,我该如何调用它。
谷歌文档上说:ACTION_APPWIDGET_ENABLED:
Sent when an instance of an AppWidget is added to a host for the first time. This broadcast is sent at boot time if there is a AppWidgetHost installed with an instance for this provider.
基本确认它应该在两种情况下都有效
这是触发onEnabled()
的 IntentCalled in response to the ACTION_APPWIDGET_ENABLED broadcast when the a AppWidget for this provider is instantiated. Override this method to implement your own AppWidget functionality.
它适用于手机而非平板电脑,这一点很奇怪。这是 android 3.2 的问题吗?有解决方法吗?
最佳答案
在多次尝试找出它为何如此行事之后,我想出了个办法。
它要么是 android 相关问题,要么是设备相关问题,widget enabled broadcast 永远不会发送。
通过警报管理器更新小部件的唯一解决方法是从警报管理器自己的方法中初始化它,然后从 onEnabled
和 onUpdate
中调用它。因此,当它未达到 onEnabled
时,它将被 onUpdate
覆盖,当小部件开始更新自身(在应用程序调用它时)。在 onEnabled
确实有效的情况下,它只会在调用 onUpdate 时用新实例替换现有的警报管理器。
这可能不是理想的解决方案,具体取决于您在 onEnabled 中尝试执行的操作,但这是我能找到的唯一解决方案。
关于Android appWidgetProvider onEnabled 从未在平板电脑上调用过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12642754/
所以我正在创建一个“聊天机器人”插件,该插件会自动向聊天消息发送捐赠链接和其他有用的消息,我知道我可能需要将其放入 public void onEnable void ,但是我不知道如何让它在发布另一
我有一个公开课,在那个课上我有: Msg msg = new Msg(); 但是我无法从类的 public void 方法访问 msg。 如果我: 每次使用时,将 Msg msg = new Msg(
根据文档,AppWidgetProvider 类的生命周期由 Android 平台管理。该文档还指出生命周期方法 onEnabled() 仅被调用一次。但是那些因为 Android 平台回收内存而被删
场景 1: 设备已加载 我添加第一个小部件 OneX -> 调用启用 | Galaxy Tab -> 不调用 onEnabled。 场景 2: 设备已启动,小部件已显示在屏幕上。 OneX -> 调用
我在触发 AppWidgetReciever 的 onEnabled 和 onDisabled 方法时遇到问题。我指定了操作,我还在 onRecieve 方法中记录了每个操作,但我得到的仅有的两个操作
我有显示来自内容提供商的数据的小部件。我想知道内容提供者中的数据何时发生变化。据我所知,方法是 context.getContentResolver().registerContentObserver
我正在制作一个自定义编辑器窗口。我有一堆具有 RectOffset 属性的类。这些是常规类,不是从 ScriptableObject 或 Monobehaviour 继承的。 我对它们进行序列化和反序
我的错误日志在第 13 行(在我的 MainClass 中)显示有一个 NPE。 我的主类: package me.p250; import org.bukkit.configuration.file
我尝试将 onEnabled 方法与 QnAMakerRecognizer 一起使用,以便我可以拥有多个 QnAMakerRecognizer,并可以选择启用和禁用哪些。我尝试遵循此example并尝
我正在研究原始 PowerControl Widget (SettingsAppWidgetProvider) 的一段源代码,我发现了以下方法: @Override public vo
我无法构建我的应用程序,因为我遇到了这个错误: Error:(117, 5) error: method does not override or implement a method from a
由于我使用 AlarmManager 执行定期小部件更新,因此我需要确保 onEnabled 和 onDisabled 能够可靠地工作。 但是,我意识到它们有时不会被触发。我不是唯一面临此问题的人。
我是一名优秀的程序员,十分优秀!