0

我希望我的 AppWidget(主屏幕小部件)Service在用户按下 a 时与 a 通信ButtonService只要 appWidget 存在,它就需要永久运行。据我所知,对小部件onClick事件做出反应的唯一方法是PendingIntents通过广播发送。目前我在 my 收到这些MainActivity,它会将其转发给 running Service

所以实际上我使用 myMainActivity作为我的小部件传入事件的某种代理。这是正确的方法吗?我更愿意Service直接与我沟通 - 这可能吗?

4

1 回答 1

4

只要 appWidget 存在,该服务就需要永久运行

这是 Android 中的反模式。结果,这实际上也是不可能的。如果您想要可靠的结果并且用户不使用任务杀手攻击您,请重新设计您的应用程序以不需要永久服务。

据我所知,对小部件的 onClick 事件做出反应的唯一方法是通过广播发送 PendingIntents。

PendingIntent在: getActivity(),getService()getBroadcast(),上有三个工厂方法来分别PendingIntent执行startActivity(),startService()sendBroadcast(), 。

我更愿意直接与我的服务沟通 - 这可能吗?

使用 agetService() PendingIntent而不是 agetActivity()getBroadcast() PendingIntent

于 2013-08-06T19:40:35.860 回答