获得服务对象

时间:2016-11-09 13:43:07

标签: android service

我试图获取我的服务对象,并且我正在使用此代码执行此操作

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。为什么呢?

1 个答案:

答案 0 :(得分:3)

服务和活动是由Android管理的不同组件,因此您不应保存对Activity insie Service的引用。 在这种情况下的解决方案 - 使用服务绑定 - 您可以将所有方法移动到单独的界面中,您的服务和活动将通过该界面进行通信,并在服务绑定到活动后将其从Binder返回。请参阅:https://developer.android.com/guide/components/bound-services.htmlBind service to activity in Android