我试图获取我的服务对象,并且我正在使用此代码执行此操作
public class Service extends android.app.Service {
private Handler handler = new Handler();
static Service SELF;
MainActivity mainActivity;
BluetoothSPP bluetoothSPP;
public static Service getInstance() {
return SELF;
}
@Override
public void onCreate() {
super.onCreate();
SELF = this;
}
}
但在启动服务后getInstance()
给出null。为什么呢?
答案 0 :(得分:3)
服务和活动是由Android管理的不同组件,因此您不应保存对Activity insie Service的引用。 在这种情况下的解决方案 - 使用服务绑定 - 您可以将所有方法移动到单独的界面中,您的服务和活动将通过该界面进行通信,并在服务绑定到活动后将其从Binder返回。请参阅:https://developer.android.com/guide/components/bound-services.html,Bind service to activity in Android