0

我的 android 应用程序有一个小部件。

这是小部件服务OnCreate

public class AppWidgetService extends Service {


    @Override
    public void onCreate() {
        super.onCreate();
        mInstance = this;
    }

private static AppWidgetService mInstance = null;

..
}

基本上,此服务会扫描从应用程序中填充的文件。

每当应用程序更改此文件内容时,我都想调用服务的re-scan(又名刷新)方法。

我曾想过创建一个新类(非活动)widgetServiceBinder

这将公开静态公共有界服务成员。

.

我有几个问题:

1)当应用程序工作时,我不知道小部件是否在用户主页中处于活动状态。

因此我不知道该服务是否正在运行。

如果它没有运行我不想创建它,因为只要用户不需要它

没有将它添加到他的主屏幕。

小部件是否存在,但是当我绑定到它时,我调用了一个未创建的服务

通过调用OnCreate

2)我问是因为我尝试过从这样的活动绑定。我设法在服务中调试

方法,但似乎它的所有成员都是空的。我不能初始化mInstance为它的静态。

3)为了简单起见,我尝试从 Activity 绑定。我实际上想创建一个

新类(非活动)widgetServiceBinder。我如何从那里绑定到服务?

我不能getApplicationContext从那个经理那里打电话。

4) 我已将应用程序的上下文从外部发送到服务方法,

但是然后我必须将其渗透到所有使用的方法中,mInstance否则我会得到一个

空指针异常。

你会建议如何解决这个问题?

4

1 回答 1

0

好吧,我只能帮你绑定非活动。

有几种方法可以做到,

1:创建一个您在上下文(活动)中传递的构造函数。

2:创建可以通过静态方式使用的单音。

最好的方法是在构造函数中传递上下文。

于 2013-08-22T12:45:53.507 回答