【发布时间】:2011-02-17 21:00:00
【问题描述】:
我的小部件部署在一个应用程序中,该应用程序也启动一个主要活动。大多数时候,我希望这个主要活动在后台运行,但是当我单击小部件时,它会转到 FOREGROUND,而不是用户看到小部件会更改应用程序主要活动的显示。我无法摆脱主要活动,因为我还希望允许用户启动包含小部件的应用程序。想知道如何处理这种情况。谢谢。
【问题讨论】:
标签: android android-activity widget launch
我的小部件部署在一个应用程序中,该应用程序也启动一个主要活动。大多数时候,我希望这个主要活动在后台运行,但是当我单击小部件时,它会转到 FOREGROUND,而不是用户看到小部件会更改应用程序主要活动的显示。我无法摆脱主要活动,因为我还希望允许用户启动包含小部件的应用程序。想知道如何处理这种情况。谢谢。
【问题讨论】:
标签: android android-activity widget launch
设置android:launchMode="singleInstance" 似乎可以防止主要活动进入前台。但是不确定这是否有一些缺点。
【讨论】:
Android 中的后台进程应实现为Services。活动旨在存在于前台,并且在处于非活动状态时会自行暂停。
【讨论】:
单击它来到 FOREGROUND 的小部件,而不是用户看到小部件更改应用程序主活动显示。
您是设置PendingIntent 以在单击应用小部件中的某些内容时将该活动置于前台的人。修复你的PendingIntent,你的问题就会消失。
Here is a sample application 使用PendingIntents 更新应用小部件而不将任何活动带到前台——事实上,应用没有活动。
【讨论】:
TheWidgetProvider 是一个AppWidgetProvider,在清单中注册了吗?