首页 > 解决方案 > 自定义小部件主机启动器应用程序无法显示像数字时钟这样的小部件?

问题描述

我正在尝试使用小部件主机支持构建我自己的启动器应用程序,如在 android 启动器中托管小部件中所述。

这适用于模拟时钟等一些小部件,但不适用于数字时钟小部件。当我尝试添加数字时钟时,它变得不可见,而使用默认的家庭启动器它工作得很好。像 Note 这样的一些小部件也“部分”地出现在这段代码中。不使用默认启动器,它可以正常工作。

我正在使用 Marshmallow 和更高版本的 android,并且该行为对所有手机都很常见。

请分享是否有人遇到此问题并找到根本原因?或者指出我解决这个问题的方向。

标签: androidwidgethostlauncher

解决方案


我终于找到了导致这个问题的问题。确保您的 Activity 中都有 onStart() 和 onStop() 实现(您在其中开始/停止收听)(所以不是您的片段!)。你也应该调用“getActivity().getApplicationContext()”而不是“getActivity()”/“getContext()”。

将公共 AppWidgetHost 和 AppWidgetManager 定义为 Activity 中的静态变量也很重要(这在片段中不起作用)。您可以通过将它们作为公共变量引用或为它们创建静态 getter 来访问它们。

对于任何问题,请随时回复,因为我被困了一天。


推荐阅读