我想构建一个非常频繁更新的Android小部件(5秒)。这意味着,我只想在屏幕打开时以及主屏幕处于活动状态时更新它。
如何获取家庭应用(或响应的应用)列表
<category android:name="android.intent.category.HOME"/>
)
在android API中,我可以使用Intent.createChooser(Intent target, CharSequence title)
以某种方式获取列表,还是必须获取所有活动,检索其意图并在每个Intent上使用hasCategory(String category)
。
谢谢!
答案 0 :(得分:0)
我想构建一个非常频繁更新的Android小部件(5秒)。
伊克。请允许用户配置。
这意味着,我只想在屏幕打开时以及主屏幕处于活动状态时更新它。
我不担心屏幕开启 - 只需使用_WAKEUP
非AlarmManager
警报。但是,“当主屏幕是活动的活动”时,如果它可以正常工作,那将是一个史诗般的黑客攻击。
在android API中,我可以使用Intent.createChooser(Intent目标,CharSequence标题)并以某种方式获取列表,或者我必须获取所有活动,检索其Intent并在每个Intent上使用hasCategory(String类别)。 / p>
对queryIntentActivities()
/ ACTION_MAIN
CATEGORY_HOME
使用Intent
。
然后,您将遇到这样的问题:这些活动仅仅是主屏幕的入口点,可能是也可能不是实际显示主屏幕的那些。
然后,您将遇到确定这是否是屏幕上的活动的问题。我不知道这是否可能。例如,ActivityManager
会告诉你它是否正在运行(答案:100%的时间),但是我没有看到它在屏幕上的概念在哪里,而其他人没有。
然后,您将遇到甚至存在的ActivityManager
API不是事件驱动的问题,这意味着您仍然需要运行代码来轮询ActivityManager
,尽管您如果你以某种方式确定主屏幕不在前台,可以通过跳过工作来保存一些指令。
因此,我回到“请允许用户配置”,因为您只是在市场上乞求一星评级,特别是取决于您每5秒钟打算做什么。
答案 1 :(得分:0)