我的Android应用程序有一个小部件。
这是小部件服务OnCreate
:
public class AppWidgetService extends Service {
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
}
private static AppWidgetService mInstance = null;
..
}
此服务基本上会扫描从应用程序中填充的文件。
每当应用更改此文件内容时,我都想调用服务的re-scan
(也就是刷新)方法。
我曾想过要创建一个新类(非Activity)widgetServiceBinder
将公开静态公共有界服务成员。
我有一些问题:
1)当应用程序运行时,我不知道该小部件是否在用户主页中处于活动状态。
因此我不知道该服务是否正在运行。
如果它没有运行我不想创建它,因为它没有任何需要,只要用户
未将其添加到主屏幕。
可能是小部件存在但是当我绑定它时,我调用了一个未创建的服务
通过致电OnCreate
?
2)我问,因为我尝试过像this这样的活动。我设法在服务中调试
方法,但似乎它的所有成员都是null。我无法初始化mInstance
。
3)为了简单起见,我尝试从Activity中绑定。我其实想要创建一个
新课程(非活动)widgetServiceBinder
。我怎样才能从那里绑定到服务?
我无法从该经理那里打电话给getApplicationContext
。
4)我已经从外部将应用程序的上下文发送到服务方法,
然后我必须将其渗透到使用mInstance
的所有方法,否则我得到
nullPointer例外。
你会如何建议解决这个问题?
答案 0 :(得分:0)
好吧,我只能帮助你在非活动中进行绑定。
有几种方法可以做到,
1:创建一个你在上下文(活动)中传递的构造函数。
2:创建可以通过静态方式使用的singeltone。
最好的方法是在构造函数中传递上下文。