2016-11-09 55 views
1

的对象,我想把我的服务对象,我做了这个代码获取服务

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()给空。为什么?

回答

3

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

+0

,但用这种方法我将无法继续服务在后台,而应用程序被关闭 –

+0

你可以开始服务,并绑定到它,所以它会保持应用程序后主动关闭 –

+0

所以你以后说开始服务我应该创建一个新的对象并绑定它?这没有意义 –