Android小部件 - 在应用程序强制停止时再次绑定服务

时间:2011-12-23 04:53:43

标签: android service widget bind

这是我对我的小部件和主要应用程序的简短描述。抱歉,因为我的英语(英语不是我的母语)

我有一个音乐播放器小部件。启用此小部件后,我需要绑定到主应用程序的音乐播放器服务(A)。因为我们无法在AppWidgetProvider中绑定服务所以我在AppWidgetProvider中启动本地服务(B)并从此处绑定到该音乐播放器服务(A)。此外,我还有一个服务C来做小部件的按钮功能。

一切似乎工作正常但是当我的主要应用程序服务A全部强制停止(他们将稍后重述)我必须从小部件重新绑定到A.问题是当主应用程序被强制停止时,我无法重新绑定到A因为上下文(每当我从onEnabled,onUpdate接收上下文时,我将Context作为全局变量存储在AppWidgetProvider中)为NULL。

我的问题是我上面的小部件结构怎么样?绑定到A时服务B应该停止吗?当主应用程序和服务a被强制停止时,我如何再次绑定到服务A(但它们将在稍后自动重启)。

谢谢!

1 个答案:

答案 0 :(得分:3)

回答我自己的问题

  1. 首先,我们可以使用context.getApplicationContext().bindService(..)
  2. 从小部件绑定服务
  3. 当主应用程序被强制停止时,要在onUpdate()上再次绑定服务,请使用应用程序上下文MyMainApplication.Instance().getApplicationContext().bindService(..)