在Android上响应特定类别的所有软件包?

在Android上响应特定类别的所有软件包?,android,android-widget,android-intent,android-manifest,categories,Android,Android Widget,Android Intent,Android Manifest,Categories,我想建立一个Android小部件,将更新非常频繁(5秒)。这意味着,我只想在屏幕打开且主屏幕为活动活动时更新它 如何获取家庭应用程序(或响应 ) 在android API中,我可以使用Intent.createChooser(Intent target,CharSequence title)并以某种方式获取列表,还是必须获取所有活动,检索它们的意图,并在每个Intent上使用hascegory(String category) 谢谢 我想建立一个Android小部件,将更新非常频繁(5秒) 哎呀

我想建立一个Android小部件,将更新非常频繁(5秒)。这意味着,我只想在屏幕打开且主屏幕为活动活动时更新它

如何获取家庭应用程序(或响应

在android API中,我可以使用
Intent.createChooser(Intent target,CharSequence title)
并以某种方式获取列表,还是必须获取所有活动,检索它们的意图,并在每个Intent上使用
hascegory(String category)

谢谢

我想建立一个Android小部件,将更新非常频繁(5秒)

哎呀。请允许用户对此进行配置

这意味着,我只想在屏幕打开且主屏幕为活动活动时更新它

我不担心屏幕是否打开——只要使用非
\u WAKEUP
报警和
AlarmManager
。然而,“当主屏幕处于活动状态时”,如果它能工作的话,那将是一个史诗般的骇客

在android API中,我可以使用Intent.createChooser(Intent目标,CharSequence标题)并以某种方式获取列表,还是必须获取所有活动,检索它们的意图并在每个Intent上使用hasCategory(字符串类别)

使用
queryIntentActivities()
作为
ACTION\u MAIN
/
CATEGORY\u HOME
Intent

然后,您将遇到这样的问题:这些活动仅仅是主屏幕的入口点,可能是也可能不是真正显示主屏幕本身的活动

然后,您将遇到确定这是否是屏幕上的活动的问题。我不知道这是否可能<例如,code>ActivityManager会告诉您它是否正在运行(答案:100%的时间),但我看不出它在哪里有一个在屏幕上,而另一个不在屏幕上的概念

然后,您将遇到这样的问题:即使是现有的
ActivityManager
api也不是事件驱动的,这意味着您仍然需要运行代码来轮询
ActivityManager
,不过,如果您确定主屏幕不在前台,则可以通过跳过工作来保存一些指令


因此,我回到“请允许用户配置”,因为你只是在乞求市场上的一颗星评级,特别是取决于你打算每5秒做什么。

请看我对这个问题的回答:

注意:你不能从xml注册SCREEN\u on/SCREEN\u OFF,只能从代码注册。